private void button1_Click(object sender, EventArgs e)
{
try
{
string strcmd = "INSERT INTO student VALUES('" + txtsname.Text + "','" + txtsrollno.Text + "')";
cmd = new OleDbCommand(strcmd, MyConn);
if (MyConn.State == ConnectionState.Closed) { MyConn.Open(); }
cmd.ExecuteNonQuery();
if (MyConn.State == ConnectionState.Open) { MyConn.Close(); }
showData();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
回答
這個錯誤的原因可能是你的表格列名和卷號有不同的類型。在代碼中,如果在數據庫中傳遞文本,則這些列應具有varchar數據類型。
我檢查我的表名是文本類型和卷號是 –
我使用ms訪問來存儲數據 –
那麼你需要轉換你的卷數字轉換爲整數,如下所示:string strcmd =「INSERT INTO student VALUES('」+ txtsname.Text +「','」+ Converter.ToInt(txtsrollno.Text)+「')」; –
看起來像Roll No是整數類型,並且您試圖通過將值包含在單引號中來插入字符串數據。
使用參數。他們將爲您節省SQL注入,並將防止類似上述的錯誤。你可以這樣做:
private void button1_Click(object sender, EventArgs e)
{
try
{
string strcmd = "INSERT INTO student VALUES(@name,@rollno)";
using (OleDbConnection MyConn = new OleDbConnection("connectionstring"))
{
using (OleDbCommand cmd = new OleDbCommand(strcmd, MyConn))
{
cmd.Parameters.AddWithValue("@name", txtsname.Text);
cmd.Parameters.AddWithValue("@rollno", int.Parse(txtslrollno.Text));
if (MyConn.State == ConnectionState.Closed) { MyConn.Open(); }
cmd.ExecuteNonQuery();
if (MyConn.State == ConnectionState.Open) { MyConn.Close(); }
showData();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
實際上使用我的代碼im在該表中插入三個條目,bt現在我試圖插入新條目他們給我的錯誤... –
條件表達式中的數據類型不匹配 –
@ user3308969,你確定你在相同的代碼中得到異常嗎? – Habib
我懷疑你在表中有更多的列和程序你逝去的只有兩個值現在SQL是consdiering,你只有兩列在表中,以解決它,你需要重寫你的sql查詢。我正在使用虛擬列名稱,請將其更改爲您自己的列。
private void button1_Click(object sender, EventArgs e)
{
try
{
string strcmd = "INSERT INTO student (name, rollno) VALUES('" + txtsname.Text + "','" + Convert.ToInt32(txtsrollno.Text) + "')";
cmd = new OleDbCommand(strcmd, MyConn);
if (MyConn.State == ConnectionState.Closed) { MyConn.Open(); }
cmd.ExecuteNonQuery();
if (MyConn.State == ConnectionState.Open) { MyConn.Close(); }
showData();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
- 1. 錯誤:標準表達式中的數據類型不匹配
- 2. 錯誤 - 標準表達式中的數據類型不匹配
- 3. 「標準表達式中的數據類型不匹配」。錯誤
- 4. 錯誤「標準表達式中的數據類型不匹配」
- 5. 運行時錯誤'3464':標準表達式中的數據類型不匹配
- 6. 運行時錯誤3464:標準表達式中的數據類型不匹配
- 7. 「添加數據時數據類型與標準表達式不匹配」錯誤
- 8. 標準表達式(VB)中的數據類型不匹配
- 9. 「標準表達式中的數據類型不匹配」
- 10. 標準表達式(vb.net,access)中的數據類型不匹配
- 11. MS Access - 標準表達式中的數據類型不匹配
- 12. 標準表達式中的數據類型不匹配
- 13. 標準表達式中的數據類型不匹配Access 2013
- 14. 「標準表達式中的數據類型不匹配」
- 15. 標準表達式中的數據類型不匹配
- 16. 「標準表達式中的數據類型不匹配」。 VS.NET 2010
- 17. 標準表達式中的數據類型不匹配。
- 18. 「標準表達式中的數據類型不匹配」
- 19. 標準表達式中的數據類型不匹配
- 20. 標準表達式中的數據類型不匹配
- 21. VB6錯誤:在標準表達式中的數據類型不匹配SQL
- 22. 標準表達式中的錯誤3464數據類型不匹配
- 23. 標準表達式中的數據類型不匹配更新時出錯GridView
- 24. 在標準表達式中訪問數據類型不匹配
- 25. 「標準表達式中的數據類型不匹配」在C#中
- 26. C#和ACCESS - 標準表達式中的數據類型不匹配
- 27. 標準表達式中的數據類型不匹配| Access,OleDb,C#
- 28. 標準表達式中的數據類型不匹配,即使代碼完美時仍然存在錯誤
- 29. 獲取數據庫錯誤:標準表達式中的數據類型不匹配c#
- 30. 標準表達式中的JavaScript Access數據庫SQL數據類型不匹配
學生是否有超過2列? –
沒有你只有2欄 –
你的問題是什麼? – idanshmu