3

我正在尝试使消息框文本提供数据表结果。以下是我到目前为止编写的代码片段:

字符串 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

基本上,例如,如果最终用户键入“公司名称-公司一”,我希望出现一个消息框,说明来自 sql 查询的数据表 (DTable) 信息。目前,我有“messagebox.Show(DTable.ToString());”,它不起作用。此外,我见过的所有其他示例都使用行索引,例如“.Rows [0]”,因为不涉及行号,所以我不能使用它,而是数据中的 sql“where”语句中的列名和记录名适配器。

这里有很多绒毛,所以我的主要问题是如何转换我的数据结果,以便它们显示在消息框中。

谢谢,

DFM

4

1 回答 1

3

我不确定您想要什么,但是如果您想在数据表中显示值,您应该能够从中获取数据并以您想要的任何顺序显示它。我想你想做类似的事情

        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 表单中的详细信息。

当然,我不确定在这样的消息框中显示未知数量的数据是个好主意,这只是您可以做到的一种方式。

于 2009-05-26T05:35:18.487 回答