有點小白說HY。 我在Microsoft Visual Studio 2010中有一個家庭作業項目的小問題。 另外,我在C#中工作。 我必須做一個網站銷售產品,我有一個Access數據庫。 所以,問題是這樣的:我寫了代碼,但它似乎有什麼錯,我不知道是什麼! 當我嘗試通過網站添加一個命令我收到一個錯誤:在OleDB中插入命令錯誤
Data type mismatch in criteria expression.
代碼是:
string date = DateTime.Now.ToShortDateString();
string string_baza_de_date = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\BogCs\Documents\Visual Studio 2010\WebSites\WebSite1\App_Data\magazin.mdb";
OleDbConnection ConexiuneSQL = new OleDbConnection(string_baza_de_date);
ConexiuneSQL.Open();
int numar_total_de_produse = CheckBoxList1.Items.Count; // se numara produsele
for (int i = 0; i < numar_total_de_produse; i++) // de la primul articol din CheckBoxList1 pana la ultimul
{
if (CheckBoxList1.Items[i].Selected == true) // daca am selectat un produs
{
// interogarea comenzii:
string interogare_adauga_comanda = "INSERT INTO comanda_finala (ID_comanda, ID_client, ID_produs, produs, tip_produs, data_comanda, pret) VALUES ("
+ TextBox1.Text + ",'" + TextBox2.Text + "',"
+ CheckBoxList1.Items[i].Value + ",'" + CheckBoxList1.Items[i].Text + "', 'Televizoare LED','"
+ data_curenta + "','" + GridView3.Rows[i].Cells[3].Text.ToString() + "');";
OleDbCommand comanda_inserare_comanda = new OleDbCommand(interogare_adauga_comanda, ConexiuneSQL);
comanda_inserare_comanda.ExecuteNonQuery();
}
}
ConexiuneSQL.Close();
GridView3.Visible = false;
Button1.Visible = false;
Button2.Visible = false;
CheckBoxList1.Visible = false;
Label1.Visible = false;
TextBox1.Visible = false;
Label2.Visible = true;
當我按下「添加命令」給我的錯誤,我不知道如何解決!
你有嘗試調試代碼嗎?它在哪裏失敗? – 2013-05-03 19:53:28
停止將所有數據放入SQL本身。使用參數化SQL,我懷疑問題會消失 - 以及SQL注入漏洞。 – 2013-05-03 19:57:08
這對我來說有點難,因爲這是我第二次在這個程序中工作:))但我會嘗試跟隨谷歌教程! – user2348197 2013-05-03 20:04:38