各位大师,请教返回自增值的问题,请大师们指教!
我的后台代码:
 public void Save()
        {
            SqlParameter[] SavePar = new SqlParameter[] { new SqlParameter("@ID", this.id.ToString()), new SqlParameter("@GOODZQMBID", this.GOODZQMBID), new SqlParameter("@goodsid", this.goodsid), new SqlParameter("@mcorder", this.mcorder), new SqlParameter("@zqmbid", this.zqmbid),  new SqlParameter("@width", this.width), new SqlParameter("@height", this.height), new SqlParameter("@AddTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")) };
            DataProvider SaveCon = new DataProvider();;
            if (this.id == 0)
            {
                SaveCon.ExecuteNonQuery("insert into Mc_GoodsZQMB (goodsid,zqmbid,width,height,AddTime,mcorder) values (@goodsid,@zqmbid,@width,@height,@AddTime,@mcorder);select @GOODZQMBID=@@IDENTITY;", SavePar);
               
                GOODZQMBID = ???//把自增值给GOODZQMBID ,我应该如何写?(ExecuteScalar()是无效的,它要求加入string,即ExecuteScalar(string commandtext)这样的格式)
                
            }

解决方案 »

  1.   

    把select @GOODZQMBID=@@IDENTITY 拿出来 ,单独执行。
      

  2.   

    不应该用 ExecuteNonQuery
      

  3.   

    SaveCon.ExecuteNonQuery("insert into Mc_GoodsZQMB (goodsid,zqmbid,width,height,AddTime,mcorder) values (@goodsid,@zqmbid,@width,@height,@AddTime,@mcorder)", SavePar);
    SaveCon.ExecuteNonQuery(select @GOODZQMBID=@@IDENTITY);
    这样是吗?然后怎么写啊?
    GOODZQMBID = ???
      

  4.   

    直接执行select @@IDENTITY
      

  5.   

    请问直接SaveCon.ExecuteNonQuery("select @@IDENTITY");
    如何取得值啊?
      

  6.   

    不要用ExecuteNonQuery,用ExecuteScale(返回第一行第一列的值的方法)。
      

  7.   

     GOODZQMBID = SaveCon.ExecuteScalar("SELECT @@IDENTITY");
    无法将object 转化为int
      

  8.   

    GOODZQMBID = Convert.ToInt32(SaveCon.ExecuteScalar("SELECT @@IDENTITY"));
    对象不能从 DBNull 转换为其他类型
      

  9.   

    object obj = SaveCon.ExecuteScalar("SELECT @@IDENTITY");
    if(obj !=null)
    {
        GOODZQMBID = Convert.ToInt32(SaveCon.ExecuteScalar("SELECT @@IDENTITY"));
    }
      

  10.   


    对象不能从 DBNull 转换为其他类型。
    源错误: GOODZQMBID = Convert.ToInt32(SaveCon.ExecuteScalar("SELECT @@IDENTITY"));
      

  11.   

    using (SqlConnection conn = new SqlConnection())
                {
                    conn.ConnectionString = "server=.;uid=sa;pwd=123456;database=test;";
                    conn.Open();                SqlCommand cmd = new SqlCommand("insert into test(name) values('hello21')", conn);
                    cmd.ExecuteNonQuery();                cmd.CommandText = "select @@IDENTITY";
                    object obj = cmd.ExecuteScalar();
                    if (obj != null)
                    {
                        Console.WriteLine(obj.ToString());
                    }
                }
      

  12.   

    先执行插入语句。然后执行查询语句:select max(id) from 表名。
      

  13.   

    http://blog.csdn.net/apollokk/article/details/34804035