aa

问题:如何获取SQL Server数据库中指定条件下的记录数?

第一步,连接数据库:

1.创建数据库连接:

SqlConnection Connection = new SqlConnection();

2.设置连接字符串:

Connection.ConnectionString = String.Format("Data Source={0};Initial Catalog={1};User ID={2};Password={3}", serverAddress, dbName, userName,key);

第二步,对SQL Server数据库执行SQL语句:

1. 创建SQL字符串:

string strSQL=String.Format("select {0} from {1} where {2}", fields, tableName, condition);

2.执行SQL语句:

SqlCommand cmd = new SqlCommand(strSQL, Connection);

SqlCommand对象三种方法的理解:

a.cmd.ExecuteNonQuery();它的返回值类型为int型。多用于执行增加,删除,修改数据,返回受影响的行数。隐含的一个用法是验证SQL语句的正确性:

 1 private bool ValidateSQL(string sql)
 2 {
 3     bool bResult;
 4     SqlCommand cmd = Connection.CreateCommand();
 5     cmd.CommandText = "SET PARSEONLY ON";
 6     cmd.ExecuteNonQuery();
 7     try
 8     {
 9         cmd.CommandText = sql;
10         cmd.ExecuteNonQuery();
11         bResult = true;
12     }
13     catch (Exception Ex)
14     {
15         MessageBox.Show(String.Format("{0}{1}SQL语句有误,请检查无误后再查询!", Ex.Message, Environment.NewLine),"提示",MessageBoxButtons.OK, MessageBoxIcon.Information);
16         bResult = false;
17     }
18     finally
19     {
20         cmd.CommandText = "SET PARSEONLY OFF";
21         cmd.ExecuteNonQuery();
22     }
23     return bResult;
24 }
View Code

b.cmd.ExecuteReader();它的返回类型为SqlDataReader。此方法用于用户进行的查询操作。使用SqlDataReader对象的Read();方法进行逐行读取。
c.cmd.ExecuteScaler();它的返回值类型多位int类型。它返回的多为执行select查询。得到的返回结果为一个值的情况,比如使用count函数求表中记录个数或者使用sum函数求和等。

原文地址:https://www.cnblogs.com/qiernonstop/p/3386967.html