【问题标题】:How to join two tables and show them in one listview?如何连接两个表并在一个列表视图中显示它们?
【发布时间】:2013-12-14 00:09:55
【问题描述】:

我正在使用列表视图,它的列形成两个不同的数据库表。这是我正在尝试的代码:

try
{
   String Query = "select id,Code,Description,Rate,Bottles,Supply,Empty,Amount,Received,
        Customer_New.Opening_Date,Customer_New.Clients_Title,Customer_New.Cust_Id 
         from (Items INNER JOIN Customer_New on Customer_New.Cust_Id=Items.Cust_Id)
                ,Customer_New";
    SQLiteDataAdapter  dba = new SQLiteDataAdapter(Query, GlobalVars.conn);
    DataSet testDs = new DataSet();
    dba.Fill(testDs, "Items");    //error
    dba.Fill(testDs, "Customer_New");   //error
    DataTable dt = testDs.Tables[0];
    this.lvcmodify.DataContext = testDs.Tables[0].DefaultView;
    lvcmodify.ItemsSource = dt.DefaultView;
    testDs.Dispose();
    dba.Dispose();
    dt.Dispose();
}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString());
}

有谁知道我如何在列表视图中完成此功能? .

sqlite 是否可以在运行时将两个表合并到逻辑表中,并在 db 中进行任何更改,以便我可以在命令中使用该单个表:dba.Fill(testDs, "Items");? 请帮助我更正此代码。谢谢

【问题讨论】:

  • 我可以在这里使用 dataTable.Merge() 方法吗?如果是,那么我如何在这种情况下实现它

标签: sql winforms sqlite listview


【解决方案1】:

看了你的源代码后,我认为问题在于你的 sql 包含 Customer_New 两次

只需删除最后一个 Customer_New 表。

try
{
    Query = "select id,Code,Description,Rate,Bottles,Supply,Empty,Amount,Received,
       Customer_New.Opening_Date,Customer_New.Clients_Title,Customer_New.Cust_Id 
         from Items INNER JOIN Customer_New on Customer_New.Cust_Id=Items.Cust_Id";
    dba = new SQLiteDataAdapter(Query, GlobalVars.conn);
    testDs = new DataSet();
    dba.Fill(testDs, "Items");
...
}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString());
}

【讨论】:

  • 用于创建视图的查询在 sqlite 数据库中不起作用...尽管我的外键选项已打开
  • 错误是 :SQLiteManager: CREATE VIEW IF NOT EXISTS "main"."items_v" AS select id,Code,Description,Rate,Bottles,Supply,Empty,Amount,Received, Customer_New.Opening_Date as Opening_Date ,Customer_New.Clients_Title as Clients_Title,Customer_New.Cust_Id as Cust_Id from (Items INNER JOIN Customer_New on Customer_New.Cust_Id=Items.Cust_Id) ,Customer_New [不明确的列名:Customer_New.Opening_Date] 异常名称:NS_ERROR_FAILURE 异常消息:组件返回失败代码: 0x80004005 (NS_ERROR_FAILURE) [mozIStorageConnection.createStatement]
  • 请为您的第一个查询发布错误,我认为您的查询有问题而不是填充功能。
  • 第一次查询错误:SQLiteManager:可能的 SQL 语法错误:创建视图 items_v 作为选择 id、代码、描述、费率、瓶子、供应、空、金额、已接收、客户新。开放日期作为开放日期、客户新。 Clients_Title as Clients_Title,Customer_New.Cust_Id as Cust_Id from (Items INNER JOIN Customer_New on Customer_New.Cust_Id=Items.Cust_Id) ,Customer_New [不明确的列名:Customer_New.Opening_Date] 异常名称:NS_ERROR_FAILURE 异常消息:组件返回失败代码:0x80004005 (NS_ERROR_FAILURE ) [mozIStorageConnection.createStatement]
  • 在同一点再次出现相同的错误............ [不明确的列名:Customer_New.Opening_Date] 异常名称:NS_ERROR_FAILURE 异常消息:组件返回失败代码:0x80004005(NS_ERROR_FAILURE ) [mozIStorageConnection.createStatement]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-12
相关资源
最近更新 更多