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