前序 

---------连续下了一周多的雨天气终于放晴了,这时候偏偏感冒了,真熬人啊,不过学习还得继续,坚持~~~

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.现在发现,程序中有很多有意思的事情,只要能想得到,就应该可以通过程序去实现,真是越来越有意思喽啊。

 

posted on 2013-07-17 10:25  冰^泉  阅读(149)  评论(0编辑  收藏  举报