C#数据库入门-011:执行命令SqlCommand

一:执行命令的方法
    1: ExecuteNonQuery:不返回结果(非查询)
    2: ExecuteReader:(0行或多行)
    3: ExecuteXmlReader:(XML)

    SqlConnection conn = null;
    try
    {
        conn = new SqlConnection(@"
            server=./sqlexpress; integrated security=true; database=northwind");

        //SqlCommand cmd = new SqlCommand();
        //cmd.Connection = conn;
        //cmd.CommandText = @"select count(*) from employees";
        SqlCommand cmd = new SqlCommand(@"select count(*) from employees", conn);

        conn.Open();

        Console.WriteLine("{0}", cmd.ExecuteScalar());
    }
    catch (SqlException ex)
    {
        Console.WriteLine(ex.ToString());
    }
    finally
    {
        if (conn != null)
        {
            conn.Close();
        }
    }

二:ExecuteNonQuery,ExecuteReader,ExecuteScalar
1: ExecuteReader:可以读一个表的记录,只能读不能写
    可以让我们在更新数据库时不使用 DataSet 而使用 ExecuteNonQuery 更改数据库中的数据。
    通过执行 UPDATE、INSERT 或 DELETE SQL语句就可以达到更改数据库中的数据目的。
    即使 ExecuteNonQuery 不返回任何行,映射到参数的输出参数或返回值仍然使用数据填充。
    但对于 UPDATE、INSERT 和 DELETE SQL语句,返回的值就是受ExecuteNonQuery()命令影响的行数。
    对其它类型的语句以及回退来说,返回的值都是 -1。
2: ExecuteScalar:只能读一条记录,一般用来判断数据库是否有数据等,只能读不能写
    这种CMD相当于我们在ADO中用SQL语句中使用一些计算函数的功能一样,在这里我们只是返回所有影响的行数的第一行第一列数据,
    这样也就是相当于专业为我们的如:select count(*) from database的功能一样,我们可以用
3: ExecuteNonQuery:可以写以可以读,
    通常在asp中用Recordset对象来从数据库中读出数据,并且用循环语句来一个一个的读出数据,
    但在我们的ADO.NET中,我们就是用DataReader 对象的ExecuteReader()方法来进行数据的列出,
    并且我们用这个ExecuteReader()方法来显示数据是最快的一种方法,
    因为当我们在用ExecuteReader()方法中的DataReader 对象来进行数据的在网站建设中显示时,他只可以一条一条向前读,不能返回,
    也就是像ASP中的ADO方法中的Recordset 对象的Movenext一样,他没有move -1这样的返回方法。

你可能感兴趣的:(C#数据库入门-011:执行命令SqlCommand)