毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> net技术 >> 正文

C#执行insert语句回受影响的行数却为-1了

更新时间:2012-5-16:  来源:毕业论文

奇怪了 ,以前做项目开发,执行insert into 插入语句,插入成功,返回受影响的行数就不会是-1,可现在用同样的语句,返回受影响的行数却为-1了。。。。。。我们开发团队的也有人遇到这问题!
   
  //int hs = cmd.ExecuteNonQuery(); 这样获得的受影响的行数为-1!!!
我还用返回刚刚插入数据返回的id show出来, 没有问题,数据库数据正常。
代码:
C# code cmd1 = " exec CheLiang_CheDui_Che_ChaRuCheXinXi'" + cddm + "','" + cph + "','" + ztdm + "','" + zzgg + "','" + cx + "','" + zzhy + "','" + kchy+ "','" + fdjh + "','" + cjh + "','" + dph + "','" + bz + "','" + lrrdm + "'";
                con.Open();
                cmd.CommandText = cmd1;
                //SqlCommand cmd = new SqlCommand(cmd1,con);
                cmd.Connection = con;
                //int hs = cmd.ExecuteNonQuery();   //当用这语句的时候执行成功,但返回的还是-1哦
                int id= Convert.ToInt32(cmd.ExecuteScalar());//当用这语句的时候一样可以执行成功,返回的id也是对的呢
                //MessageBox.Show(hs.ToString());
                if (hs > 0)//像这里用行数判断就不行了!用返回的id没有问题
                {                  
                }
                else { MessageBox.Show("数据库异常!", "系统提示"); }//提示失败
                con.Close();
添加参数,调用存储过程
ExeuteNoQuery()只对Update,Insert,Delete语句是返回修改行数的 
对于 UPDATE、INSERT 和 DELETE SQL 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1 
一定不要使用 SET NOCOUNT ON 
using(SqlConnection conn = new SqlConnection(""))
{
  SqlCommand cmd = new SqlCommand("p_Add", conn);
  cmd.CommandType = CommandType.StoredProcedure;
  cmd.Parameters.AddWithValue("@Name", Name);

  conn.Open();
  cmd.ExecuteNonQuery();}  
打开Sql管理器,选择服务器属性(服务器上点右键出来个包含属性的菜单),在右侧选择连接,左侧有个列表,看看里面的no count是不是被选中了?
int id= Convert.ToInt32(cmd.ExecuteScalar());//
这个ExecuteScalar方法是返回第一行,第一列的数据. 你只是插入语句, 当然没有值, 

cmd.ExecuteNonQuery(); 这个返回影响行!

[1] [2] 下一页

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。