【问题标题】:TADOStoredProc alternative for C#C# 的 TADStoredProc 替代品
【发布时间】:2014-12-06 22:10:19
【问题描述】:

我已经为 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())
{
     ...
}

提前致谢

【问题讨论】:

  • 我希望会有一些东西,因为 C# 是由编写 Delphi 语言的同一个人编写的 :-)
  • @Jerry Anders 并没有设计所有的库。对于 Delphi 或 C#。

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


【解决方案1】:

在花了很多时间处理这个问题之后,我得出的结论是没有不错的方法可以做到这一点。您可以对其进行设置,以便使用相同类型的对象获得相同的结果,但这种方式非常非常混乱且难以维护。这是我的建议。

  1. 首先创建您的存储过程。用于插入、更新、删除和选择
  2. 关注这篇文章 -> http://msdn.microsoft.com/en-us/library/bb163707.aspx

在此步骤结束时,您应该有一个数据集,其中包含来自您选择的存储过程的返回参数,以及一个带有 Fill 和 GetData 方法的表适配器

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

    • BindingSource:DataSource = 数据集,DataMember = 选择存储过程
    • TableAdapterManager:应该引用正确的表适配器
    • DataGridView:DataSoruce = bindingSource
    • ButtonNavigator:DataSource = bindingSource
  4. 网格应自动生成数据集中的列。 (弗兰基,自动生成的列完全没用,我建议关闭该功能并自己执行此操作)

  5. 刷新数据需要做的事情

    tableAdapter.Fill(dataset, ... 选择存储的过程参数 ...);

  6. 要在网格中保存您需要做的更改

    tableAdapterManager.UpdateAll(数据集);

这与我过去在 Delphi 中的做法完全不同。在某些方面它更好,在某些方面它更糟;这只是你必须处理的。我希望这对将来的某人(可能是我)有所帮助

【讨论】:

    猜你喜欢
    • 2010-12-10
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多