【发布时间】:2015-06-29 08:02:22
【问题描述】:
现在我有这个方法来执行存储过程:
public static DataTable ExecuteProcedureNoParams(string connectionStringName, string procedureName)
{
using (DbCommand sprocCmd = SqlDB(connectionStringName).GetStoredProcCommand(procedureName))
{
DataTable dt = new DataTable();
using (IDataReader sprocReader = SqlDB(connectionStringName).ExecuteReader(sprocCmd))
{
dt.Load(sprocReader);
// DisplayRowValues(sprocReader);
}
return dt;
}
}
private static SqlDatabase sqlDB;
public static SqlDatabase SqlDB(string connectionString)
{
if (sqlDB == null)
{
sqlDB = CreateConnection(connectionString);
}
return sqlDB;
}
private static SqlDatabase CreateConnection(string connectionString)
{
DatabaseProviderFactory factory = new DatabaseProviderFactory();
if (string.IsNullOrWhiteSpace(connectionString))
{
// Create the default Database object from the factory.
// The actual concrete type is determined by the configuration settings.
return factory.CreateDefault() as SqlDatabase;
}
else
{
// Create a Database object from the factory using the connection string name.
return factory.Create(connectionString) as SqlDatabase;
}
}
现在,我得到的错误是它找不到我的存储过程(“sqlexception 找不到存储过程”)。 我在网络配置中测试了连接字符串,它也可以正常工作。
IDataReader 调用失败。
谁能帮我解决这个问题?
附言- 我正在尝试创建一个执行存储过程的方法,而不给它任何参数并将其作为 DataTable 检索。
【问题讨论】:
-
“我得到的错误是它找不到我的存储过程” 发布 EXACT 异常,即复制粘贴其文本。另外,请修正您问题的标题,以反映您遇到的实际问题。
-
完成。请告诉我这是否更合适? @BCdotWEB
-
存储过程名称是否有错字?您实际上是否连接到正确的数据库?您是否在限定存储过程所有者(即 dbo..)很难看出问题所在,但线索在异常中 - SQL Server 找不到您要的内容。
-
存储过程名称是正确的 - 我在 sql server 中测试了它(使用确切的字符串)。我正在连接到正确的数据库。
标签: c# sql-server stored-procedures