首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于在c#中,通过存储过程读出数据后,再通过SqlDataAdapter将修改的表更新到数据库,该怎么解决

2012-03-23 
关于在c#中,通过存储过程读出数据后,再通过SqlDataAdapter将修改的表更新到数据库源代码:stringstrConns

关于在c#中,通过存储过程读出数据后,再通过SqlDataAdapter将修改的表更新到数据库
源代码:
string   strConn   =   "server=localhost;Database=test;uid=sa;pwd=1 ";
                        SqlConnection   conn   =   new   SqlConnection(strConn);                        
                        conn.Open();
                        string   strSql   =   "select   *   from   tab ";
                        SqlDataAdapter   dpt   =   new   SqlDataAdapter( "procName ",conn                
                        DataSet   ds   =   new   DataSet();
                        dpt.Fill(ds);
                        DataRow   dr   =   ds.Tables[0].NewRow();
                        dr[ "aa "]   =   "gggg ";
                        dr[ "bb "]   =   "gggg ";
                        dr[ "cc "]   =   "gggg ";
                        dr[ "fid "]   =   9;
                        ds.Tables[0].Rows.Add(dr);
                        SqlCommandBuilder   scb   =   new   SqlCommandBuilder(dpt);
                        dpt.Update(ds);


我在调试时发现能取出来,也能对表增加记录等操作,但执行对最后的dpt.Update(ds);就报错,请问正确的方法应该怎么做,

[解决办法]
报的错误是什么
[解决办法]
存储过程读出的数据用SqlDataAdapter.Update来更新估计是不行的
[解决办法]
表是否有主键

如果要更新最好这样填弃DTASET----dpt.FillSCHEMA(ds,。。。MAPPED);然后再FILL(ds)


[解决办法]
报的错误是什么

表是否有主键

很关键
[解决办法]
string strSql = "select * from tab ";
这句 干啥的好像没用到啊 ??
[解决办法]
很有可能是表没有主键
[解决办法]
表没有主键 sqlbuild就会不能动态生成insert updata等语句

但..这用存储过程取出的....沉思ing
[解决办法]
ds.Tables[0].Rows.Add(dr);
// < < < <加上这2句
DataSet changesds=ds.GetChanges();
ds.AcceptChanges();

// < < <
SqlCommandBuilder scb = new SqlCommandBuilder(dpt);
//dpt.Update(ds);要修改为下句
dpt.Update(changesds);

[解决办法]
http://community.csdn.net/Expert/topic/5680/5680626.xml?temp=.4583094
[解决办法]
你这个 'procName ' 是 存储过程 名字吗 ??是在 程序里面写的存储过程还是调用数据库里面
存在的存储过程啊 ?
另外,string strSql = "select * from tab ";这句 貌似你没有使用啊??
[解决办法]
存储过程 我也没用过,你先试试 就用string strSql = "select * from tab ";这句 和我前面那楼 添加的那几句试试,应该是可以更新到数据库的,如果你那个存储过程里面仅仅是简单的1句SQL语句,那也没必要非得用存储过程。
另外,你的存储过程 是数据库里面的,还是在程序里面的??把存储过程的语句 弄出来上查询分析器 试试,你上楼不是说 存储过程那有语法错误吗?检查一下

热点排行