c#插入sql数据返回主键值
我调用类方法插入的数据
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 后面怎么写啊!
或者怎么改啊!!
------最佳解决方案--------------------在写一句语句string sql='select @@identity'
再重数据库取一次,或者可以用top 1再去一次
------其他解决方案--------------------
select SCOPE_IDENTITY
------其他解决方案--------------------把SQL换成存储过程,里面写上插入语句,插入成功时获取主键值作为存储过程返回值
------其他解决方案--------------------string sql=“select .....”
sql+="select @@identity";
调用读取sql语句的方法
------其他解决方案--------------------返回主键值,需要从数据库再取一次。
------其他解决方案--------------------建议去.NET问问
------其他解决方案--------------------insert into [tablename]
(lie1,lie2) output [tablename].lie_id values(@lie1,@lie 2)
------其他解决方案--------------------~~~写个过程,插入时调用他,返回主键~~
------其他解决方案--------------------
这样真的可以...
------其他解决方案----------------------不知道有没有
--IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。
--语法:IDENT_CURRENT('table_name')
--@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。
--语法:@@IDENTITY
--SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值。
-- 语法:SCOPE_IDENTITY()
------其他解决方案--------------------[quote1=引用:]
SQL code??
12345678910
--不知道有没有 --IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。 --语法:IDENT_CURRENT('table_name') --@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。 --语法:@@IDENTITY --SCOPE_IDENTITY 返……[/quote]