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

全部分一段代码,求获得Sql server自增列的值

2013-07-04 
全部分在线等一段代码,求获得Sql server自增列的值原来是用access做的 当时找到这样一段代码Protected Sub

全部分在线等一段代码,求获得Sql server自增列的值
原来是用access做的 当时找到这样一段代码
    Protected Sub OnRowUpdated(ByVal sender As Object, ByVal args As OleDbRowUpdatedEventArgs)
        Dim idCMD As OleDbCommand = New OleDbCommand("SELECT @@IDENTITY", Conn)
        If args.StatementType = StatementType.Insert Then
            newId = CInt(idCMD.ExecuteScalar())
            args.Row("ID") = newId
        End If
    End Sub

同时
        AddHandler da.RowUpdated, New OleDbRowUpdatedEventHandler(AddressOf OnRowUpdated)
        da.Fill(DS, LibName)

现在数据库换成 sql Server了 请问这里该怎么改
60发是我全部分了 在线等

[解决办法]
SQL Server 的自增列是由数据库在插入时自动赋值的,然后你可以通过 @@IDENTITY 取得刚才自动赋值的 ID。
程序中就不需要对 ID 字段赋值了。
注意一下 InsertCommand 的 SQL 中不要带 ID 字段,自增列是不能外部赋值的。
[解决办法]
string sql="insert into users values('TEST','TEST','TEST');select @@Identity";
....................
sqlcommand.ExecuteScalar();
[解决办法]

 /// <summary>
        /// 返回首行首列的值Object
        /// </summary>
        /// <param name="cmdType"></param>
        /// <param name="cmdText"></param>
        /// <param name="cmdParameters"></param>
        /// <returns></returns>
        public static object ExectueScalar(CommandType cmdType, string cmdText, params SqlParameter[] cmdParameters)


        {
            using (SqlConnection sqlCon = new SqlConnection(CONNSTRING))
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = sqlCon;
                cmd.CommandType = cmdType;
                cmd.CommandText = cmdText;

                if (sqlCon.State != ConnectionState.Open)
                    sqlCon.Open();

                if (cmdParameters != null)
                {
                    foreach (SqlParameter parm in cmdParameters)
                    {
                        cmd.Parameters.Add(parm);
                    }
                }

                object reValue = cmd.ExecuteScalar();
                cmd.Parameters.Clear();
                return reValue;
            }
        }

热点排行