Windows窗体SqlCommand C#错误

苹果电脑

我有一个在家编写的Windows Forms程序(我大部分时间都在使用ASP.Net,所以已经有一段时间了),我在执行存储过程命令时遇到了麻烦。

我创建了SqlCommand从目标SqlConnection对象,然后创建SqlParameterSqlCommand我指定名称,数据类型等。但是,每当我打电话SqlCommand ExecuteReader()告诉我时,都会期望未提供的参数。我清楚地添加了它们,并在调试中逐步完成时可以看到它们的填充。有任何想法吗?

存储过程:

EXEC dbo.GetTransactions @StartDate = '2015-04-10 18:07:43',  
                         @EndDate = '2015-04-10 18:07:43'

DataAccess

  public static DataTable Execute(SqlCommand iCommand) {
     DataTable objTable = new DataTable();
     try {
        iCommand.Connection.Open();
        SqlDataReader objReader = iCommand.ExecuteReader();
        objTable.Load(objReader);
        objReader.Close();
     }
     catch {
        throw;
     }
     finally {
        iCommand.Connection.Close();
     }
     return objTable;
  }

  public static SqlCommand CreateCommand(string iProcedureName) {
     try {
        SqlConnection objConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnectionString"].ToString());
        SqlCommand objCommand = new SqlCommand(iProcedureName, objConnection);
        return objCommand;
     }
     catch {
        throw;
     }
  }

TransactionCollection

  private static DataTable Load(DateTime iStartDate, DateTime iEndDate) {
     string strProcedureName = "GetTransactions";
     SqlCommand objCommand = DataAccess.CreateCommand(strProcedureName);
     SqlParameter param = objCommand.CreateParameter();
     param.ParameterName = "@StartDate";
     param.DbType = DbType.DateTime;
     param.Value = iStartDate;
     objCommand.Parameters.Add(param);

     param = objCommand.CreateParameter();
     param.ParameterName = "@EndDate";
     param.DbType = DbType.DateTime;
     param.Value = iEndDate;
     objCommand.Parameters.Add(param);

     return DataAccess.Execute(objCommand);
  }
marc_s

您需要告诉SqlCommand它正在执行存储过程!你需要设置CommandType你的SqlCommand-在这里看到:

 public static SqlCommand CreateCommand(string iProcedureName) {
    try {
       SqlConnection objConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnectionString"].ToString());
       SqlCommand objCommand = new SqlCommand(iProcedureName,  objConnection);
       // add this line here!!
       objCommand.CommandType = CommandType.StoredProcedure;

       return objCommand;
    }
    catch {
        throw;
    }
 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

c#中的Windows窗体错误

来自分类Dev

将MediaElement添加到Windows窗体错误C#

来自分类Dev

C# Visual Studio Windows 窗体错误 CS1501

来自分类Dev

Windows窗体使用C#

来自分类Dev

Windows窗体的C#单元测试

来自分类Dev

计算器Windows窗体C#

来自分类Dev

文件未上传Windows窗体C#

来自分类Dev

在Windows窗体之间传递值c#

来自分类Dev

Windows窗体中使用C#的DataGridView

来自分类Dev

C#混合WinRT和Windows窗体

来自分类Dev

文件上传Windows窗体C#

来自分类Dev

Windows窗体绘图效率低下-C#

来自分类Dev

Windows窗体c#的扩展类

来自分类Dev

在C#中创建投票(Windows窗体)

来自分类Dev

C#锁定Windows窗体控件

来自分类Dev

windows 窗体 c# ftp 上传器

来自分类Dev

Windows 窗体的 Bunifu 圆角 - C#

来自分类Dev

C# Windows窗体算法计算

来自分类Dev

C# Windows 窗体初始化

来自分类Dev

C# Windows 窗体 - 锚点

来自分类Dev

如何访问设计 Windows 窗体 C#

来自分类Dev

Windows窗体c#在同一窗体上读取和写入同一文件错误?

来自分类Dev

C# 文本框短日期格式异常错误,Windows 窗体应用程序

来自分类Dev

返回(返回)Windows窗体C ++

来自分类Dev

尝试使用C#执行查询时SqlCommand返回错误

来自分类Dev

如何访问Windows窗体组合框的变量?C#

来自分类Dev

Windows窗体/ C#中的动态折叠面板创建

来自分类Dev

在C#中的多个屏幕上重复Windows窗体

来自分类Dev

Visual Studio C#无法创建新的Windows窗体项目