VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: mgs_pexp

存储过程接收多个参数问题 高手请进

[复制链接]

1

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-3-9 17:30:01 | 显示全部楼层
wwhhoon  

CREATE PROCEDURE Test
    @idString NVARCHAR(1000)
AS
    DECLARE @sql NVARCHAR(2000)

    SET @sql = "UPDATE Images SET 是否专辑=1 WHERE (ImageID IN ('" + @idStrings + "')"

    exec @sql


@idStrings从你上面的代码组合,形式如下:
    imgeid1,imageid2,imageid3
回复

使用道具 举报

1

主题

10

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
 楼主| 发表于 2020-3-15 13:30:02 | 显示全部楼层
楼上能不能再详细点啊~~~
回复

使用道具 举报

1

主题

10

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
 楼主| 发表于 2020-3-18 14:45:01 | 显示全部楼层
这样说吧:我在页面后台把选中的图片ID组合成一个字符串 中间用逗号隔开如:“1,2,3,4,6,7,8,”
这样传到存储过程里,存储过程把这串ID分割开,再根据这些ID把name字段该成“测试”。
具体怎么存储过程怎么写

本人菜鸟一只!!!! 大侠不要只谈思路贴点实际代码出来!!!
回复

使用道具 举报

1

主题

10

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
 楼主| 发表于 2020-3-19 15:30:01 | 显示全部楼层
继续等高手
回复

使用道具 举报

0

主题

8

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-3-21 09:45:01 | 显示全部楼层
要用存储过程更新不定的数据内容最好用DataAdpater + DataSet
回复

使用道具 举报

0

主题

8

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-3-21 21:15:02 | 显示全部楼层
SqlDataAdapter catDA = new SqlDataAdapter("SELECT CategoryID, CategoryName FROM Categories", nwindConn);      
catDA.UpdateCommand = new SqlCommand("UPDATE Categories SET CategoryName = @CategoryName " +
                                     "WHERE CategoryID = @CategoryID" , nwindConn);

catDA.UpdateCommand.Parameters.Add("@CategoryName", SqlDbType.NVarChar, 15, "CategoryName");

SqlParameter workParm = catDA.UpdateCommand.Parameters.Add("@CategoryID", SqlDbType.Int);
workParm.SourceColumn = "CategoryID";
workParm.SourceVersion = DataRowVersion.Original;

DataSet catDS = new DataSet();
catDA.Fill(catDS, "Categories");   

DataRow cRow = catDS.Tables["Categories"].Rows[0];
cRow["CategoryName"] = "New Category"; //这里改了一行数据,你可以通过循环修改多行


catDA.Update(catDS);

ps:以上抄自
ms-help://MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconupdatingdatabasewithdataadapterdataset.htm
回复

使用道具 举报

1

主题

10

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
 楼主| 发表于 2020-3-22 19:45:02 | 显示全部楼层
这办法太那个了吧。有别的方法吗
回复

使用道具 举报

0

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-3-23 12:30:01 | 显示全部楼层
----
这样说吧:我在页面后台把选中的图片ID组合成一个字符串 中间用逗号隔开如:“1,2,3,4,6,7,8,”
这样传到存储过程里,存储过程把这串ID分割开,再根据这些ID把name字段该成“测试”。

.................

楼上兄弟已给出了:

wwhhoon  

CREATE PROCEDURE Test
    @idString NVARCHAR(1000) //如其值为1,2,3,4,6,7,8
AS
    DECLARE @sql NVARCHAR(2000)

    SET @sql = "UPDATE Images SET [Name]='测试' WHERE (ID IN ('" + @idStrings + "')"

    exec @sql


@idStrings从你上面的代码组合,形式如下:
    imgeid1,imageid2,imageid3
回复

使用道具 举报

1

主题

10

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
 楼主| 发表于 2020-3-23 22:45:01 | 显示全部楼层
这个不好使啊~~~~有问题。
哪位大哥给改检查一下  改下错误啊1!!
回复

使用道具 举报

0

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-3-26 18:30:01 | 显示全部楼层
修改存储过程.让存储过程接收的参数为一个以","分割的字符串.然后到存储过程里处理.

如:"1,2,3,4,5,6" 这样你选了十个,就是10个ID号以","分割的串.

就不用考虑执行几次了.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表