我调用类方法插入的数据
        public static string  insert(string sql, params SqlParameter[] parameters)
        {
            string connstr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
            SqlConnection conn = new SqlConnection(connstr);
            conn.Open();
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = sql;
            foreach (SqlParameter a in parameters)
            {
                cmd.Parameters.Add(a);
            }
怎么返回刚插入的数据的主键值啊。。return 后面怎么写啊!
或者怎么改啊!!

解决方案 »

  1.   

    在写一句语句string sql='select @@identity'
    再重数据库取一次,或者可以用top 1再去一次
      

  2.   

    insert into [tablename]
    (lie1,lie2) output [tablename].lie_id values(@lie1,@lie 2)
      

  3.   

    把SQL换成存储过程,里面写上插入语句,插入成功时获取主键值作为存储过程返回值
      

  4.   

    --不知道有没有
    --IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。
    --语法:IDENT_CURRENT('table_name')
    --@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。
    --语法:@@IDENTITY--SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值。
    -- 语法:SCOPE_IDENTITY()   
      

  5.   

    string sql=“select .....”sql+="select @@identity";调用读取sql语句的方法
      

  6.   

    [quote1=引用 9 楼 cd731107 的回复:]
    SQL code??12345678910--不知道有没有 --IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。 --语法:IDENT_CURRENT('table_name')     --@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。 --语法:@@IDENTITY   --SCOPE_IDENTITY 返……