我想检查我在methode ExecuteNonQuery()中的查询是否正在运行。 这是我的WCF服务中的代码:
public string Execute(string query){
string connectionString = ConfigurationManager.ConnectionStrings["ConnWf"].ConnectionString;
string hasil = "ERROR";
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
string cmdStr = String.Format(query);
SqlCommand command = new SqlCommand(cmdStr, conn);
command.Connection.Open();
command.ExecuteNonQuery();
//I want to check here..
if (command.ExecuteNonQuery().HasRows) //it doesn't works :(
{
hasil = "SUCCESS \n Row Affected: " + rd.RecordsAffected;
}
else
{
hasil = "FAILED \n Row Affected: " + rd.RecordsAffected;
}
conn.Close();
}
return "Query: "+query+"\n Status: "+hasil;
}
答案 0 :(得分:3)
ExecuteNonQuery()
返回一个整数,该整数将是受sql语句影响的行的总和。即如果SSMS返回:
(614 row(s) affected)
(123 row(s) affected)
ExecuteNonQuery()
将返回737。
所以你可以使用这样的东西。
try
{
hasil = string.Format("Success \n Rows Affected: {0}", command.ExecuteNonQuery());
}
catch
{
hasil = "Failed \n Rows Affected: 0";
}
您还应该考虑使用SqlCommand和SqlConnection的using
块。
答案 1 :(得分:1)
您也可以在本地测试WCF服务,并确认ExecuteNonQuery()
正在运行
int result = command.ExecuteNonQuery();
结果将受ExecutenonQuery()
影响的行数