我一直在嘗試將不同表(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");
uj5u.com熱心網友回復:
我通過在專案中添加一個 DataSet 檔案并“直觀地”做所有事情得到了正確的查詢
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;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/485407.html
