如何从aspx页面的代码隐藏调用CLR存储过程?
我使用带有commandtext的SqlCommand作为CLR存储过程名称和SqlHelper.ExecuteDataSet(),如下所示。
string connectionString = ConfigurationManager.AppSettings["ConnectDB"];
SqlConnection sn = new SqlConnection(connectionString);
SqlParameter[] sqlParameters = new SqlParameter[1];
sqlParameters[0] = new SqlParameter("@query", SqlDbType.Int);
sqlParameters[0].Value = "SELECT * FROM Inventory";
DataSet ds=new DataSet();
try
{
ds = SqlHelper.ExecuteDataset(sn, "[dbo].[prc_clr]", sqlParameters);
}
catch (Exception ex)
{
throw;
}
但我得到例外“存储过程'[dbo]。[prc_clr]'不存在。”。
请帮忙。
答案 0 :(得分:0)
看起来您正在尝试混合命令文本和存储过程。我不相信查询可以放入参数并以这种方式使用,因此请尝试以下两种方法之一:
string connectionString = ConfigurationManager.AppSettings["ConnectDB"];
SqlConnection sn = new SqlConnection(connectionString);
DataSet ds=new DataSet();
try
{
ds = SqlHelper.ExecuteDataset(sn, CommandType.StoredProcedure, "[dbo].[prc_clr]");
}
catch (Exception ex)
{
throw;
}
或
string connectionString = ConfigurationManager.AppSettings["ConnectDB"];
SqlConnection sn = new SqlConnection(connectionString);
string strsql = "SELECT * FROM Inventory";
DataSet ds=new DataSet();
try
{
ds = SqlHelper.ExecuteDataset(sn, CommandType.Text, strSql);
}
catch (Exception ex)
{
throw;
}
当你有一个参数做类似的事情时:
ds = SqlHelper.ExecuteDataset(sn, CommandType.StoredProcedure, "[dbo].[prc_clr]", new SqlParameter("@CategoryID", 1));