2010-05-02 94 views
0

当我想从文本框向我的访问数据库插入值时,出现问题! 当我要救我得到这个错误(“标准表达式中数据类型不匹配”) 代码:“标准表达式中的数据类型不匹配”

string conString = "Provider=Microsoft.Jet.OLEDB.4.0;" 
     + "Data Source=C:\\Users\\Simon\\Desktop\\test5\\test5\\test5\\save.mdb"; 

    OleDbConnection empConnection = new OleDbConnection(conString); 


    string insertStatement = "INSERT INTO aktivnosti_save " 
         + "([ID_uporabnika],[ID_aktivnosti],[kalorij]) " 
         + "VALUES (@ID_uporabnika,@ID_aktivnosti,@kalorij)"; 

    OleDbCommand insertCommand = new OleDbCommand(insertStatement, empConnection); 

    insertCommand.Parameters.Add("@ID_uporabnika", OleDbType.Char).Value = textBox3.Text; 
    insertCommand.Parameters.Add("@ID_zivila", OleDbType.Char).Value = iDTextBox.Text; 
    insertCommand.Parameters.Add("@kalorij", OleDbType.Char).Value = textBox2.Text; 
    empConnection.Open(); 

    try 
    { 
     int count = insertCommand.ExecuteNonQuery(); 
    } 
    catch (OleDbException ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
    finally 
    { 
     empConnection.Close(); 
     textBox1.Clear(); 
     textBox2.Clear(); 
    } 
} 
+0

这看起来像是重复的http://stackoverflow.com/questions/2731216/problems-by-inserting-values-from-textboxes – Thomas 2010-05-02 14:36:27

+0

他们都是绝对字符数据不是数字?包括ID字段ID_zivila和@ID_uporabnika? – 2010-05-02 14:38:19

+0

@Thomas - 略有不同的查询,但似乎是根本相同的问题! – 2010-05-02 14:42:18

回答

-1

您可以使用字符串连接(字符串insertStatement =),而不是

insertCommand.Parameters.Add("@ID_uporabnika", OleDbType.Char).Value = textBox3.Text; 

你可以写为例:

string insertStatment = "INSERT INTO aktivnosti_save " 
        + "([ID_uporabnika],[ID_aktivnosti],[kalorij]) " 
        + "VALUES ('"+textbox1.text+"','"+textbox2.text+"','"+textbox3.text+"')"; 

试试这个,让我知道任何进一步的问题。你是我们

+0

为什么投下了票? – 2012-10-27 00:08:38

相关问题