日期:2014-05-17  浏览次数:20863 次

c# 执行插入语句返回自动编号

--说明tclassId是自动增长的列,这里的作用是,添加记录后返回该条记录的自动编号-->说明这里在ADO.NET中可以通过SqlCommand.ExceuteScale()方法来
--执行和获取当前新增记录的自动编号
insert into TblClass output inserted.tclassId values('测试','测试...');


--执行任何sql语句其实调用Command对象的ExecuteNonQuery()、ExecuteScalar(),ExecuteReader()都可以,只不过执行对应的语句如果选对了方法
--使用更合适

            #region 执行插入语句返回自动编号
            string constr = "Data Source=zxtiger;Initial Catalog=itcastcn;Integrated Security=True";
            using (SqlConnection con = new SqlConnection(constr))
            {
                string sql = string.Format(" insert into TblClass output inserted.tclassId values('{0}','{1}')", "黑马6期", "太遥远了。。");
                using (SqlCommand cmd = new SqlCommand(sql, con))
                {
                    con.Open();
                    //object obj =(int) cmd.ExecuteScalar();//这个类型转换叫“拆箱”,如果装箱时不时int类型,就报错了。

                    //推荐下面这种类型转换。适用范围更广一些。这种转换可以把"9"转换为int类型。
                    // int.Parse()
                    object obj = Convert.ToInt32(cmd.ExecuteScalar());
                    Console.WriteLine(obj);
                }
            }
            Console.ReadKey();

            #endregion