asp.net怎样实现批量更新?
前台设置一个button、俩个TextBox。TextBox1用来接收一个值(假如是“10001”),TextBox2用来接收一个编号集(光枪扫描,每个编号11位数字,是...
前台设置一个button、俩个TextBox。TextBox1用来接收一个值(假如是“10001”),TextBox2用来接收一个编号集(光枪扫描,每个编号11位数字,是几百个编号连在一起的字符串)。
操作是:将编号集那个整个字符串分割成一个个11位的编号mark,并且找到表中相应的mark那一行,将其state的值都更新成TextBox1的值。新手,求源码! 展开
操作是:将编号集那个整个字符串分割成一个个11位的编号mark,并且找到表中相应的mark那一行,将其state的值都更新成TextBox1的值。新手,求源码! 展开
2个回答
展开全部
你应该是要更新数据中的资料吧. 如果是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, 大概可以参考此思路进行更新.
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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询