读书人

C# WinForm 新增数据后将identity(1,1

发布时间: 2013-06-26 14:29:32 作者: rapoo

C# WinForm 新增数据后将identity(1,1)自动增长值返回到前后界面
以下是代码:
try
{
BMBHRSGS.EndCurrentEdit();
HY_MODEL.BasicInfo.dsHRSGS dsChange = (HY_MODEL.BasicInfo.dsHRSGS)MydsHRSGS.GetChanges();
string connStr = ConfigurationManager.ConnectionStrings["hyhr"].ConnectionString;
SqlConnection myConn = new SqlConnection(connStr);
myConn.Open();
string strSql = "INSERT INTO HRSGS(GS003)VALUES(@GS003);SELECT SCOPE_IDENTITY() AS GS001";
SqlCommand addCmd = new SqlCommand();
addCmd.Connection = myConn;
addCmd.CommandText = strSql;
SqlParameter[] myPara = {
new SqlParameter("@GS003",SqlDbType.VarChar,20,"GS003")
};
addCmd.Parameters.AddRange(myPara);
SqlDataAdapter mySda = new SqlDataAdapter();
mySda.TableMappings.Add("Table", "HRSGS");
mySda.InsertCommand = addCmd;
mySda.Update(dsChange);
}
catch(Exception Ex)
{
MessageBox.Show(Ex.Message.ToString());
}
说明:GS001 是自动增长ID值,现在需要新增一笔数据后就把这个自动产生的ID值获取返回到前台,这是SQL:string strSql = "INSERT INTO HRSGS(GS003)VALUES(@GS003);SELECT SCOPE_IDENTITY() AS GS001";
帮忙参谋一下有没有好的方法,谢谢!! C#? WinForm SQL


[解决办法]
先进行排序,查找“最大”的ID,然后自己写方法递增,比如取到最大ID 为GS011,切割出前缀GS,和后面要递增的011,然后++,在左边补充0(string.PadLeft……),再把前面的前缀加上,就能形成一个新的最大的ID。仅供参考
[解决办法]
直接写个过程,返回值就是了

读书人网 >C#

热点推荐