【问题标题】:Dump stored proc output params into a DataGridView row将存储的 proc 输出参数转储到 DataGridView 行中
【发布时间】:2008-11-18 16:04:53
【问题描述】:

我是c#的长期新手,这个问题可能太明显了,所以如果我“做错了”,请原谅。

使用 Visual Studio 2005 Pro、C#、SQL Server 2000 EE SP3。

我有一个存储过程,它接受一个输入参数并返回与该输入相关的几个输出参数。我也成功调用它,并将输出 String.Format-ing 到 RichTextBox 中。我想定期调用这个过程,每次都将输出参数粘贴到 DataGridView 行中,因此结果会随着时间的推移而累积。

  • 将这些参数放入 DataGridView 的最简单/最优雅的方法是什么?我更喜欢代码而不是一些 GUI 构建器解决方案。
  • 我是否忽略了一些更好的方法,例如更合适的控制?

谢谢!

【问题讨论】:

    标签: c# sql-server user-interface stored-procedures datagridview


    【解决方案1】:
    //set up the datatable
    DataTable dt = new DataTable("parms");
    dt.Columns.Add("ParmName",typeof(string));
    dt.Columns.Add("ParmValue",typeof(string));
    //bind to a gui object
    myDataGridView.DataSource = dt;
    
    //do this after each sproc call
    foreach (SqlParameter parm in cmd.Parameters)
    {
        if (parm.Direction == ParameterDirection.Output)
        {
            //do something with parm.Value
            dt.Rows.Add(new object [] { parm.ParameterName, 
                Convert.ToString(parm.Value) } );
        }
    }
    

    【讨论】:

    • 谢谢史蒂文。但是,我实际上对 GUI 方面更感兴趣。 IE。如何将 proc 输出连接到 datagridview 或更好的控制。
    • 经过一些修改(因为我知道我想要的特定列)它工作得很好。将我的代码添加到另一个答案以确保完整性。再次感谢!
    【解决方案2】:

    史蒂夫的回答让我很接近。我不确定 DataGridView 是不是最好的解决方案,但它似乎可以工作。

    在Form()中,在InitializeComponent()之后,我放了列设置代码(因为我想定期添加行):

    dgvOutput.Columns.Add("@col1", "Val 1");
    dgvOutput.Columns.Add("@col2", "Val 2");
    dgvOutput.Columns.Add("@col3", "Val 3");
    

    在按钮处理程序中,调用存储过程后

    dgvOutput.Rows.Add(new object[]{
        Convert.ToString(cmd.Parameters["@col1"].Value),
        Convert.ToString(cmd.Parameters["@col2"].Value),
        Convert.ToString(cmd.Parameters["@col3"].Value)
    });
    dgvOutput.AutoResizeColumns();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多