Привязать или вытащить запись DataTable к тексту MessageBox в C # - PullRequest
3 голосов
/ 26 мая 2009

Я пытаюсь заставить текст сообщения отображать результаты. Ниже приведен фрагмент кода, который я написал до сих пор:

String mystring = comboBox1.Text; if (mystring.Substring (0, 12) == ("Название компании")) { textBox2.Text = mystring.Substring (13); ADOCon.ConnectionString = @ "Provider = Microsoft.Jet.OLEDB.4.0; Источник данных = C: \ Users \ Name \ Desktop \ SmallBizDb.mdb"; ADOCon.Open ();

            OleDbCommandBuilder CBuilder = new OleDbCommandBuilder(DAdapter);
            DAdapter = new OleDbDataAdapter("Select Companies.Company_Name From Companies Where Companies.Company_Name = '" + textBox2.Text + "'", ADOCon);

            DAdapter.Fill(DTable);
            MessageBox.Show(DTable.ToString());
            ADOCon.Close();
            ADOCon.Dispose();
        }
        else

По сути, если конечный пользователь, например, вводит «Company Name-Company One», я бы хотел, чтобы появилось окно сообщения с информацией о датируемой (DTable) информации, получаемой из SQL-запроса. В настоящее время у меня есть «messagebox.Show (DTable.ToString ());», который не работает. Кроме того, во всех других примерах, которые я видел, используются индексы строк, такие как «.Rows [0]», которые я не могу использовать, поскольку номера строк не задействованы, а скорее имена столбцов и имен записей из оператора SQL «где» в данных адаптер.

Здесь много ошибок, поэтому моя главная проблема заключается в том, как преобразовать мои датированные результаты, чтобы они отображались в окне сообщения.

Спасибо,

DFM

1 Ответ

2 голосов
/ 26 мая 2009

Я не уверен, что вы хотите, но если вы хотите отобразить значения в вашей таблице данных, вы сможете получить данные из них и отображать их в любом порядке. Я думаю, что вы хотите сделать что-то вроде

        System.Text.StringBuilder b = new System.Text.StringBuilder();
        foreach (System.Data.DataRow r in dt.Rows)
        {
            foreach (System.Data.DataColumn c in dt.Columns)
            {
                b.Append(c.ColumnName.ToString() + ":" + r[c.ColumnName].ToString());
            }
        }
        MessageBox.Show(b.ToString());

Это зациклит все возвращенные строки, и для каждой строки (каждой компании в результатах) добавьте сведения в форме ColumnName: ActualValue dataTable.

Конечно, я не уверен, что отображать неизвестное количество данных в окне сообщения, как это хорошая идея, это просто способ, которым вы можете это сделать.

...