
我自己一般不用dataset更新数据库的 如果你使用的数据库是SQL Server, 那么用的SqlDataAdapter的Update方法来更新数据库的数据的吧, 它是可以自己设定更新数据库的SQL语句的, 代码片段如下:
SqlDataAdapter sqlDa = null;
// 设置sqlDa
SqlCommand command = new SqlCommand(
"UPDATE tbName SET column1 = @value1, column2 = @value2 WHERE keyColumn = @keyValue", connection);
// 设置command的参数与对应列, 根据实际修改类型, 列名
commandParametersAdd("@value1", SqlDbTypeNChar, 50, "column1");
SqlParameter parameter = commandParametersAdd("@keyValue", SqlDbTypeNChar, 10, "keyColumn");
parameterSourceVersion = DataRowVersionOriginal;
sqlDaUpdateCommand = command;
// sqlDa执行更新
所以, 只把需要更新的列放到更新语句中, 那个统计列不要放在里面, 就不会发生你所说的异常了
思路:根据字段a的内容拼查询字符串,然后用exec()去执行更新字段b,因为exec()只能执行一条sql,所以用游标逐条去执行
alter table table1 add b numeric(18,3)
DECLARE @zd varchar(200),@xiao varchar(200)
DECLARE test CURSOR FOR
select a from table1
OPEN test
FETCH NEXT FROM test into @zd
WHILE @@FETCH_STATUS = 0
BEGIN
set @xiao='update table1 set b = (select '+(select rtrim(a) from table1 where a=@zd)+')'+' where a='''+rtrim(@zd)+''''
exec (@xiao)
FETCH NEXT FROM test into @zd
end
CLOSE test
DEALLOCATE test
还有一个问题,就是如果a的值是5/10的话结果是0,不信你试试,要改成50/100才行,要不默认为整形的
可以用数组的形式进行存储修改与删除,当然这种做法的效率不高,不建议这样使用。
如下字段是团队(team),内容是,“蜜蜂团队|小张,小李,小毛,”
程序如下(从数据库读出来的部分就不写了,直接写如何写成数组吧。)
<%
team="蜜蜂团队"
tc1="小张"
tc2="小李"
tc3="小毛"
w_arr=team&"|"&tc1&","&tc2&","&tc3&","
'w_arr 已经是一个字符串了。写入数据库如下
w_sql="insert into [table](team) values('"&w_arr&"')"
connexecute(w_sql)
''''''''已经写入数据库了。格式为 "蜜蜂团队|小张,小李,小毛,"
'读取出来部分我就忽略了,主要是读数据库很简单的。假设读取后如下
arr_team=rs("team")
arr=split(arr_team,"|")
teamname=arr(0)
responsewrite("<form name=form1 method=post action=1asp />")
responsewrite("团队名字是:<input type=text name=teamname value='"&arr(0)&"' /><Br>")
responsewrite("团队成员如下:")
arr_team_cy=split(arr(1),",")
for i=0 to ubound(arr_team_cy)-1
'arr_team_cy(i) 就是每个成员的名字了,可以用个input框把他们给框住
%>
<input type=text name=tc<%=i%> value=<%=arr_team_cy(i)%> />
<%
next
%>
<input type=hidden name=id value=<%=rs("id")%> />
<input type=submit value=确定 />
</form>
''''''''''''''''''''''''''''''''''''''
'至于修改部分我就不写了,接着开始部分那样,在接受页面把字段数据转成字符串连接起来,写入数据库即可。唯一标示就是ID,将来删除数据时候也一样。
如果想删除字段内的成员,把该字段值写为空就行了。因为读的时候是数组循环的。程序会判断的。。。。
以上就是关于c#中用dataset更新数据库,但数据库表中有计算列,无法进行更新,求解。全部的内容,包括:c#中用dataset更新数据库,但数据库表中有计算列,无法进行更新,求解。、SQL字符字段中的公式计算、asp中,如何计算access数据库多个字段的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)