我正在尝试让消息框文本提供数据表结果。下面是我到目前为止编写的代码片段:
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
基本上,例如,如果最终用户键入“公司名称-公司一”,我希望出现一个消息框,说明来自 sql 查询的数据表 (DTable) 信息。目前,我有“messagebox.Show(DTable.ToString());”,这是行不通的。此外,我看到的所有其他示例都使用行索引,例如“.Rows[0]”,我不能使用它,因为不涉及行号,而是来自数据中的 sql“where”语句的列名和记录名适配器。
这里有很多问题,所以我的主要问题是如何转换我的数据结果,以便它们显示在消息框中。
谢谢,
数据流媒体
最佳答案
我不确定你想要什么,但如果你想在你的数据表中显示值,你应该能够从中获取数据并以你想要的任何顺序显示它。我想你想做类似的事情
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 形式的详细信息。
当然,我不确定像这样在消息框中显示未知数量的数据是个好主意,这只是您可以做到的一种方式。
关于c# - 在 C# 中将 DataTable 记录绑定(bind)或拉取到 MessageBox 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/909024/