前序
---------连续下了一周多的雨天气终于放晴了,这时候偏偏感冒了,真熬人啊,不过学习还得继续,坚持~~~
1.今天听到插入语句还有一种写法,就是插入时返回插入的ID值,sql语句如下:
insert into tb_type(id,name) output inserted.id values('27','text')
试了一下,还真的可以返回新插入的ID值;插入语句也可以使用ExecuteScalar方法;以前只知道插入时如果要返回插入的值,先做插入然后再写一个查询方法去做,今天发现这种方法,一下简单了好多,省去了好多事情;
2.下面就说一下ExecuteScalar方法吧:
执行查询,并传回查询所传回的结果集第一个资料列的第一个资料行。会忽略其他的资料行或资料列;如果返回的是多个结果集,需要使用reader.read()方法一条条读取。
(1)C#的语法:public override Object ExecuteScalar ()
(2)C#的实例,如下:
static public int AddProductCategory(string newName, string connString)
{
Int32 newProdID = 0;
string sql =
"INSERT INTO Production.ProductCategory (Name) VALUES (@Name); "
+ "SELECT CAST(scope_identity() AS int)";
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@Name", SqlDbType.VarChar);
cmd.Parameters["@name"].Value = newName;
try
{
conn.Open();
newProdID = (Int32)cmd.ExecuteScalar();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
return (int)newProdID;
}
3.现在发现,程序中有很多有意思的事情,只要能想得到,就应该可以通过程序去实现,真是越来越有意思喽啊。