Dan*_* C. 0 c# sql web-services sql-server-2008 web
我一直在编写很多基于存储过程的SQL插入的Web服务,而且我还没有真正使用任何SELECTS.
SELECT我想到的那个很简单.
SELECT COUNT(AD_SID) As ReturnCount FROM AD_Authorization
WHERE AD_SID = @userSID
Run Code Online (Sandbox Code Playgroud)
但是,根据我当前的INSERT代码,我无法弄清楚如何将其变为a SELECT并返回...的值ReturnCount...你能帮忙吗?这是我的INSERT代码:
string ConnString = "Data Source=Removed";
string SqlString = "spInsertProgress";
using (OleDbConnection conn = new OleDbConnection(ConnString))
{
using (OleDbCommand cmd = new OleDbCommand(SqlString, conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("attachment_guid", smGuid.ToString());
cmd.Parameters.AddWithValue("attachment_percentcomplete", fileProgress);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
这是你出错的地方:
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
您正在执行查询.
你需要ExecuteReader或ExecuteScalar代替.ExecuteReader用于结果集(多行/列),ExecuteScalar当查询返回单个结果时(它返回object,因此需要将结果强制转换为正确的类型).
var result = (int)cmd.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)
该results变量现在将包含一个OledbDataReader或一个带有结果的值SELECT.您可以迭代结果(对于读者)或标量值(对于标量).