Дамп сохраненных выходных параметров процесса в строку DataGridView - PullRequest
0 голосов
/ 18 ноября 2008

Я давний новичок в C #, и этот вопрос может быть слишком очевидным, поэтому, пожалуйста, прости, если я "делаю это неправильно".

Использование Visual Studio 2005 Pro, C #, SQL Server 2000 EE SP3.

У меня есть сохраненный процесс, который принимает один входной параметр и возвращает несколько выходных параметров, относящихся к этому входу. Я также называю это успешно, и String. Форматирование выводов в RichTextBox. Я хотел бы периодически вызывать этот процесс и каждый раз вставлять выходные параметры в строку DataGridView, чтобы результаты накапливались с течением времени.

  • Какой самый простой / изящный способ сделать эти параметры в DataGridView? Я бы предпочел код, а не какое-нибудь решение GUI Builder.
  • Я пропускаю какой-то лучший подход, например, более подходящий элемент управления?

Спасибо!

Ответы [ 2 ]

1 голос
/ 18 ноября 2008
//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) } );
    }
}
0 голосов
/ 18 ноября 2008

Ответ Стива приблизил меня. Я не уверен, что 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...