首页 新闻 会员 周边

.net中更新表时同一字段数据相同!!

0
悬赏园豆:20 [已解决问题] 解决于 2012-08-10 11:56

下面这段代码的大致意思:两个表overview和upload,需要从overview表中查询出满足a.permit_no=b.permit_no条件的数据,放到dt中。之后再用dt中的数据更新upload表中的对应字段。

 

String selectSql = "select a.jianan as jianan,a.house as house from overview as a,upload as b where a.permit_no=b.permit_no";  //查询语句

//要求两个表中的permit_no相等才查询出来

String updateSql = "update upload set upload.jianan=@jianan,upload.house=@house from overview,upload where upload.permit_no=overview.permit_no";  //更新语句

System.Data.DataTable dt = db.ExecSqlRetDT(selectSql, null, null); //执行查询操作,  返回一个DataTable

if(dt.Rows.Count>0)
{
  for (int i = 0; i < dt.Rows.Count; i++)  
  {
    DataRow row = dt.Rows[i];
    Decimal jianan = Convert.ToDecimal(row[0]);  //jianan数据类型为decimal
    int house = Convert.ToInt32(row[1]);  //house数据类型为int
    SqlParameter[] par = { new SqlParameter("@jianan", jianan), 

              new SqlParameter("@house",house) };         

    db.ExecSqlNoRet(updateSql, par);  //执行更新操作

  }
}

问题来了:执行完上面这段代码之后,upload表中jianan和house字段的数据都更新了,但是两个字段中对应的数据都相同,比如都是122,1。本来在overview表中这两个字段中的数据是不同的

kop1892的主页 kop1892 | 初学一级 | 园豆:130
提问于:2012-06-22 16:53
< >
分享
最佳答案
0

String updateSql = "update upload set upload.jianan=@jianan,upload.house=@house from overview,upload where upload.permit_no=overview.permit_no";  //更新语句

這句 錯誤。

String updateSql = "update upload set upload.jianan=@jianan,upload.house=@house from upload where upload.permit_no=@permit_no";  //更新语句

然後 給 @permit_no  再 給一個數字。

你那樣 更新的話,肯定是都相同的。

收获园豆:10
無限遐想 | 老鸟四级 |园豆:3740 | 2012-06-24 08:10

在aspx页面中执行更新操作之后,表中的数据都更新了,每一个字段的内容都是相同的,就像122,1那种一样,不明白什么原因?

还有如果我用sqlcommand.ExecuteNonQuery(),就一条语句的话是不是只更新一条记录,还是所有的满足条件的记录都更新?

kop1892 | 园豆:130 (初学一级) | 2012-06-24 17:13

@kop1892: 這個 主要 看你的更新 條件哦。

無限遐想 | 园豆:3740 (老鸟四级) | 2012-06-25 09:04
其他回答(3)
0

你把简单的问题复杂化了

收获园豆:3
狼图腾TOP | 园豆:322 (菜鸟二级) | 2012-06-22 18:17
0

顶楼上,你确实把简单的问题复杂化了,一句SQL语句就搞定,没有必要循环。

Update  b set b.jianan=a.jianan, b.house=a.house
from overview a, upload b
where a.permit_no=b.permit_no
收获园豆:4
webaspx | 园豆:1973 (小虾三级) | 2012-06-22 22:59
0

条件没有指定正确吧。

收获园豆:3
forhells | 园豆:724 (小虾三级) | 2012-07-01 21:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册