CADOStoredProc替代C#

时间:2014-12-06 22:10:20

标签: c# delphi stored-procedures visual-studio-2013

我一直在为Delphi开发很长一段时间,并且已经习惯了TADOStoredProc来处理存储过程。 Embarcadero的Delphi IDE做了很多很好的事情,比如自动获取所有参数,自动为StoredProc对象生成属性以访问返回类型。所有这一切都发生在设计时。

我最近切换到C#和Visual Studio 2013,但我没有看到任何这些不错的功能。我必须在代码中手动添加所有参数并访问返回数据,我必须使用DataRow对象。是否有一个很好的功能,如Visual Studio(MS或第三方)中的TADOStoredProc?

我目前正在这样做

SqlConnection sc = new SqlConnection(connectionString);
SqlCommand com = new SqlCommand("StorePrc", sc);
com.CommandType = System.Data.CommandType.StoredProcedure;
com.Parameters.AddWithValue("@id", 1);

using (SqlDataReader sdr = com.ExecuteReader())
{
     ...
}

提前致谢

1 个答案:

答案 0 :(得分:0)

在花了很多时间之后,我得出结论认为没有很好的方法。您可以对其进行设置,以便使用相同类型的对象获得相同的结果,但这种方式非常凌乱且难以维护。以下是我的建议。

  1. 首先创建存储过程。用于插入,更新,删除和选择
  2. 关注本文 - > http://msdn.microsoft.com/en-us/library/bb163707.aspx
  3. 在此步骤结束时,您应该有一个数据集,其中包含来自select存储过程的返回参数和一个带有Fill和GetData方法的表适配器

    1. 在继续之前点击构建
    2. 创建新表单。在DataGridView,数据集(刚创建的数据集),TableAdapter(刚刚创建的一个),TableAdapterManager(刚刚创建的一个),BindingSource和ButtonNavigator
    3. 上拖动(从工具箱中)
    4. 在属性浏览器窗口中为对象设置以下属性

      • BindingSource:DataSource = dataset,DataMember = Select Stored Proc
      • TableAdapterManager:应该引用正确的表适配器
      • DataGridView:DataSoruce = bindingSource
      • ButtonNavigator:DataSource = bindingSource
    5. 网格应自动生成数据集中的列。 (Franlky自动生成的列完全没用,我建议关掉这个功能并自己动手做)

    6. 刷新您需要执行的数据

      tableAdapter.Fill(dataset,... select stored proc params ...);

    7. 要保存网格中需要执行的更改

      tableAdapterManager.UpdateAll(数据集);

    8. 这与我以前在Delphi中的方式完全不同。在某些方面它更好,在某些方面它更糟糕;它只是你要处理的事情。我希望将来可以帮助某人(可能是我)