首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# WinForm 新增数据后将identity(1,1)自动增长值回来到前后界面

2013-06-26 
C# WinForm 新增数据后将identity(1,1)自动增长值返回到前后界面以下是代码:try{BMBHRSGS.EndCurrentEdit(

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。仅供参考
[解决办法]
直接写个过程,返回值就是了

热点排行