我正在使用存储过程对象执行一个查询。我想在执行查询后在Select语句中返回行数返回。
我在使用ExecuteReader() & ExecuteScalar()
public static int getDuplicateEvent(string ATM, string Fault1, string Fault2, ref SqlConnection Connection)
{
string sQuery = "";
int result = 0;
try
{
sQuery = /*Query With Format Select Code From A Union Select Code From B */
using (SqlStoredProcedure sspObj = new SqlStoredProcedure(sQuery, Connection, CommandType.Text))
{
result = (int)sspObj.ExecuteScalar();
sspObj.Dispose();
}
}
catch (Exception xObj)
{
result = 0;
}
return result;
}
答案 0 :(得分:3)
ExecuteScalar
返回结果第一行的第一列
ExecuteReader
返回可以通过
您还可以将ExecuteNonQuery
或Fill
用于DataSet
或DataTable
假设您需要行和计数,我会fill a DataTable并使用Rows.Count
计算行数
答案 1 :(得分:1)
在以下行中创建一个查询:
SELECT COUNT(*) FROM dbo.Users
然后使用ExecuteScalar
接收行数。
ExecuteScaler执行查询,并返回查询返回的结果集中第一行的第一列。其他列或行将被忽略。
ExecuteReader将CommandText发送到Connection并构建一个SqlDataReader。