asp.net怎样实现批量更新?

前台设置一个button、俩个TextBox。TextBox1用来接收一个值(假如是“10001”),TextBox2用来接收一个编号集(光枪扫描,每个编号11位数字,是... 前台设置一个button、俩个TextBox。TextBox1用来接收一个值(假如是“10001”),TextBox2用来接收一个编号集(光枪扫描,每个编号11位数字,是几百个编号连在一起的字符串)。
操作是:将编号集那个整个字符串分割成一个个11位的编号mark,并且找到表中相应的mark那一行,将其state的值都更新成TextBox1的值。新手,求源码!
展开
 我来答
Andy_Sun321
2013-08-09 · TA获得超过1376个赞
知道小有建树答主
回答量:811
采纳率:89%
帮助的人:732万
展开全部
你应该是要更新数据中的资料吧. 如果是SQL Server的话, 可以用以下的存储过程实现:

create procedure rep @val nvarchar(100), @codes nvarchar(max)
as
declare @step int, @idx int, @len int
declare @tb table (txt nvarchar(30))
select @step = 11, @idx = 1, @len = len(@codes)
while @idx < @len
begin
insert into @tb
select substring(@codes, @idx, @step)
set @idx = @idx + @step
end
update yourTable
set state = @val
from @tb s
where yourTable.mark = s.txt
go

前提是编号集中编码中没有空隙(当然, 有空隙的话可以令做处理). 如果不是SQL Server, 大概可以参考此思路进行更新.
追问
数据库MySQL,连接是odbc,我是想要asp.net   aspx.cs的代码的。光枪扫描所以编码是没有空隙的。谢谢!
追答
apsx.cs中的C#代码: 假设从post回的数据中获得的TextBox1和TextBox2的值分别保存在newStateTxt, markTx变量(string类型)中,
int idx = 0;
int len = markTxt.Length;
string s = "";
for (; idx < len;) {
s = markTxt.Substring(idx, 11);
// 执行MySQL的更新语句, state值取newStateTxt, mark值取s就可以了
idx += 11;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b9189da80
2013-08-13 · 超过11用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:35.7万
展开全部
在ASP.NET后台 使用SPLIT(",")来分隔编号集,循环 执行SQL语句就可以了。SQL语句应该知道怎么写吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式