我正在尝试使消息框文本提供数据表结果。下面是我到目前为止编写的一段代码:
String mystring = comboBox1.Text; if(mystring.Substring(0,12)==(“公司名称”)) { textBox2.Text = mystring.Substring(13); ADOCon.ConnectionString = @“Provider = Microsoft.Jet.OLEDB.4.0; Data Source = 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”,例如,我想要一个消息框,显示来自sql查询的数据表(DTable)信息。目前,我有“messagebox.Show(DTable.ToString());”,这不起作用。另外,我见过的所有其他示例都使用Row索引,例如“.Rows [0]”,由于不涉及行号,我无法使用,而是数据中的sql“where”语句中的列名和记录名适配器。
这里有很多毛病,所以我的主要问题是如何转换我的数据结果,以便它们显示在消息框中。
谢谢,
DFM
答案 0 :(得分:2)
我不确定您想要什么,但如果您想在数据表中显示值,您应该能够从中获取数据并以您想要的任何顺序显示它。我想你想要做像
这样的事情 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());
这将遍历返回的所有行,并且对于每一行(结果中的每个公司),以dataTable的ColumnName:ActualValue形式添加详细信息。
当然,我不确定在消息框中显示未知数量的数据,这是一个好主意,这只是你可以做到的一种方式。