-2

我目前正在尝试使用我拥有的数据库填充数据集。以下代码似乎根本没有填充数据集:

    private static DataSet records = new DataSet();
    public static DataSet LoanersData()
    {
        //query string **add more tables as needed**
        string querystring = "SELECT * FROM LoanerItems; SELECT * FROM Customers; SELECT * FROM Jobs";

        //sql connection
        SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
        scsb.DataSource = "LLOYD2\\";
        scsb.InitialCatalog = "LoanersTest";
        scsb.IntegratedSecurity = true;
        scsb.ConnectTimeout = 30;

        SqlConnection loanersConnection = new SqlConnection(scsb.ConnectionString);

        SqlDataAdapter adapter = new SqlDataAdapter(querystring, loanersConnection);
        adapter.TableMappings.Add("Table", "LoanerItems");
        adapter.TableMappings.Add("Table1", "Customers");
        adapter.TableMappings.Add("Table2", "Jobs");

        adapter.Fill(records);

        return records;
    }

和这个:

    {
        InitializeComponent();
        records = DataRetreive.LoanersDataSet.LoanersData();
        LoanerItemsTable = records.Tables["LoanerItems"];
        CustomersTable = records.Tables["Customers"];
        LoanerItemsTable = records.Tables["Jobs"];
    }

我无法确定数据集是否已填充,但在尝试像这样查询其中一个数据表时:

            IEnumerable<DataRow> query = from LoanerItems in LoanerItemsTable.AsEnumerable() select LoanerItems;
            foreach (DataRow p in query)
            {
                loanerComboBox1.Items.Add(p.Field<string>("BCPartnNumber"));
            }

我没有收到任何错误,但没有任何内容添加到组合框中。在调试期间,我注意到它无法循环遍历数据行,因为数据表中没有任何内容。

我正在尝试做的事情和我正在做的事情可能是两件不同的事情。我想至少澄清一下,在表中“BCPartnumber 是列的名称。如果需要,我可以提供更多代码,但目前没有太多其他可提供的。

4

3 回答 3

3

如果您尝试从 3 个表中填充数据集,请分别尝试三个 select 语句并更改您的代码,如本文所示

如果您对此有任何疑问,请告诉我

于 2013-06-17T16:41:08.140 回答
0

最好的方法是使用查询分析器或 SQL Server Management Studio 查看 LoanerItems 表的结构,以验证它是否具有 BCPartnNumber 字段。

如果您在数据库中有记录,如果 LoanerItems 表中没有 BCPartnNumber 字段,您的代码将引发异常。

于 2013-06-17T16:02:13.863 回答
0

我称之为“5磅包里的10磅肉”。您的目标是用部件填充 ComboBox,但您的函数从三个查询返回一个包含三个表的 DataSet。将 LoanersData() 函数重构为三个不同的函数,它们为三组数据返回一个 DataTable(而不是 DataSet)。例如,PartsData() 用于您想要在 ComboBox 中的部件数据。然后将 ComboBox 绑定到 PartsData() 的结果:

loanerComboBox1.DataSource = PartsData();

您还必须设置 ComboBox 的 DisplayMember 和 ValueMember 属性。

于 2013-06-17T16:54:21.817 回答