C# SQL适配器似乎未填充数据集

C# SQL适配器似乎未填充数据集,c#,sql,sql-server,sql-server-2005,C#,Sql,Sql Server,Sql Server 2005,我目前正在尝试使用我拥有的数据库填充数据集。以下代码似乎根本没有填充数据集: private static DataSet records = new DataSet(); public static DataSet LoanersData() { //query string **add more tables as needed** string querystring = "SELECT * FROM LoanerItems; SEL

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

    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"));
            }
IEnumerable query=来自LoanerItemsTable中的LoanerItems.AsEnumerable()选择LoanerItems;
foreach(查询中的数据行p)
{
loanerCombox1.Items.Add(p.Field(“BCPartnNumber”));
}
我没有收到任何错误,但组合框中没有添加任何内容。在调试期间,我注意到它无法在数据行中循环,因为数据表中没有任何内容


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

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


如果数据库中有记录,那么如果LoanerItems表中没有BCPartnNumber字段,代码将引发异常

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

如果您对此有任何疑问,请告诉我。我将其称为“5磅袋子中的10磅肉”。您的目标是用零件填充组合框,但您的函数将从三个查询中返回三个表的数据集。将LoanersData()函数重构为三个不同的函数,这些函数为三组数据返回一个DataTable(而不是DataSet)。例如,用于组合框中所需零件数据的PartsData()。然后将组合框绑定到PartsData()的结果:


您还必须设置组合框的DisplayMember和ValueMember属性。

它在数据库中。只要在VisualStudio中使用Transact-SQL编辑器,就可以看到它的存在。我在数据库中有大约100条记录,该列不包含空记录。将其更改为数据库中不存在的列将无法引发异常。我假设这意味着datatable中没有记录?在records中更改表的名称。Tables无法向抛出异常。例如
LoanerItemsTable=records.Tables[“SomeRandomTable”]仍然无法引发异常。我很确定错误存在于试图填充数据集本身的某个地方。我只是不确定错误是什么。你收到的是什么错误?你原来的帖子说你没有收到任何错误。records.Tables[“SomeRandomTable”]应返回null,这可能会导致LoanerItemsTable.AsEnumerable()引发ArgumentException。这是怎么回事?
loanerComboBox1.DataSource = PartsData();