簡體   English   中英

System.Data.OleDB “條件表達式中的數據類型不匹配。”

[英]System.Data.OleDB 'Data type mismatch in criteria expression.'

我一直在嘗試將不同表(Access 數據庫)中的不同列放入一個 DataTable 中。 查詢/命令正確,但適配器導致錯誤

System.Data.OleDb.OleDbException:“條件表達式中的數據類型不匹配。”

命令是

SELECT tab_agend.ID, tab_teams.Descricao, tab_agend.idtask 
FROM tab_teams 
INNER JOIN tab_agend ON tab_teams.ID = tab_agend.idequipa;

它確實適用於 Access,但 Visual Studio 會在該行引發錯誤:

adapter.Fill(dset, "table");

完整代碼:

string query;

if (Tabela == "tab_agend") 
{  
    query = "SELECT tab_agend.ID, tab_teams.Descricao, tab_agend.idtask " + 
            " FROM tab_teams " + 
            " INNER JOIN tab_agend ON tab_teams.ID = tab_agend.idequipa;";
} 
else 
{  
     query = "SELECT * FROM " + Tabela;
}

dset.Reset();

adapter = new OleDbDataAdapter(query, connection);
adapter.Fill(dset, "table");

我通過在項目上添加數據集文件並“直觀地”完成所有操作來獲得正確的查詢

DataSet1.xsd(數據集文件)的圖像

SELECT 
    tab_places.Localizacao, 
    tab_subtasks.[Desc], tab_subtasks.Type, 
    tab_tasks.*, tab_subtasks.IDTask
FROM 
    ((tab_tasks 
LEFT JOIN 
    tab_places ON tab_tasks.IDPlace = tab_places.ID) 
LEFT JOIN 
    tab_subtasks ON tab_tasks.ID = tab_subtasks.IDTask)

調用適配器並填充 Datagrid 的代碼是:

DataSet1TableAdapters.DataTable1TableAdapter dadapter = new DataSet1TableAdapters.DataTable1TableAdapter();

DataSet1.DataTable1DataTable dt = new DataSet1.DataTable1DataTable();

dadapter.Fill(dt);

sfDataGrid1.DataSource = dt;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM