我是c#的长期新手,这个问题可能太明显了,所以如果我“做错了,请原谅。”
使用Visual Studio 2005 Pro,C#,SQL Server 2000 EE SP3。
我有一个存储过程,它接受一个输入参数并返回与该输入有关的几个输出参数。我也成功调用它,String.Format输出到RichTextBox。我想定期调用这个proc,每次都将输出参数保存到DataGridView行,这样结果会随着时间的推移而累积。
谢谢!
答案 0 :(得分: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) } );
}
}
答案 1 :(得分:0)
在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();