簡體   English   中英

導入csv文件時,要訪問的條件表達式中的數據類型不匹配

[英]importing csv file occur data type mismatch in criteria expression to access

我正在從C#Windows導入csv文件以訪問數據庫。 導入CSV時,條件表達式中的數據類型不匹配。 謝謝回答。

這是我的CSV文件:

2,Each Product less 2 dollars,minus,0,2,2014/7/3,2014/7/31,0

這是我的桌子:

DiscountID(Int),Dis_Description(Text),Dis_Type(Text),Dis_Quantity(Int)
Dis_Value(Int),Start_Date(DateTime),EndTime(DateTime),Dis_Price(Int)

這是代碼:

cmd.CommandText = "UPDATE " + database + " SET  [Dis_Description] = '" + dtCSV.Rows[i].ItemArray.GetValue(1).ToString().Trim() + "'," + "[Dis_Type] = '" + dtCSV.Rows[i].ItemArray.GetValue(2).ToString().Trim() + "'," + "[Dis_Quantity] = '" + dtCSV.Rows[i].ItemArray.GetValue(3).ToString().Trim() + "'," + "[Dis_Value] = '" + dtCSV.Rows[i].ItemArray.GetValue(4).ToString().Trim() + "'," + "[Start_Date] = '" + dtCSV.Rows[i].ItemArray.GetValue(5).ToString().Trim() + "'," + "[Expiry_Date] = '" + dtCSV.Rows[i].ItemArray.GetValue(6).ToString().Trim() + "'," + "[Dis_Price] = '" + dtCSV.Rows[i].ItemArray.GetValue(7).ToString().Trim()+ "' WHERE DiscountID = " + dtCSV.Rows[i].ItemArray.GetValue(0).ToString().Trim() + "'";
cmd.ExecuteNonQuery();

更新代碼:在要訪問的條件表達式中也會發生數據類型不匹配的情況。

    OleDbCommand cmd = new OleDbCommand("UPDATE Discounts SET [Dis_Description]=?,[Dis_Type]=?,[Dis_Quantity]=?,[Dis_Value]=?,[Start_Date]=?,[Expiry_Date]=?,[Dis_Value]=? WHERE [DiscountID] = ?;
    cmd.Parameters.AddWithValue("?", dtCSV.Rows[i].ItemArray.GetValue(1).ToString().Trim());
    cmd.Parameters.AddWithValue("?", dtCSV.Rows[i].ItemArray.GetValue(2).ToString().Trim());
    cmd.Parameters.AddWithValue("?", dtCSV.Rows[i].ItemArray.GetValue(3).ToString().Trim());
    cmd.Parameters.AddWithValue("?", dtCSV.Rows[i].ItemArray.GetValue(4).ToString().Trim());
    cmd.Parameters.AddWithValue("?", dtCSV.Rows[i].ItemArray.GetValue(5).ToString().Trim());
    cmd.Parameters.AddWithValue("?", dtCSV.Rows[i].ItemArray.GetValue(6).ToString().Trim());
    cmd.Parameters.AddWithValue("?", dtCSV.Rows[i].ItemArray.GetValue(7).ToString().Trim());
cmd.Parameters.AddWithValue("?", dtCSV.Rows[i].ItemArray.GetValue(0).ToString().Trim());
    cmd.ExecuteNonQuery();

認為這是您的問題:

WHERE DiscountID = " + dtCSV.Rows[i].ItemArray.GetValue(0).ToString().Trim() + "'";

它可能應該顯示為:

WHERE DiscountID = '" + dtCSV.Rows[i].ItemArray.GetValue(0).ToString().Trim() + "'";

似乎單引號被遺漏了。

另外,為什么字段名稱之間的所有聯接?

+ "'," + "[Dis_Quantity] = '" +

+ "', [Dis_Quantity] = '" +

等等...

暫無
暫無

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

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