问题描述
在Click事件中插入一条记录.其中quesion表中的queNo字段为数字,queTxt为字符.函数如下,执行的时候提示标准表达式中数据类型不匹配。privatevoidaddQueBtn_Click(objectsender,EventArgse){stringqueNo=addQueTxb.Text;stringqueTxt=addQueRichTxb.Text.Trim().ToString();stringsqlstring="INSERTINTOquesion(queNo,queTxt)VALUES('queNo,'queTxt')";OleDbConnectionconnection=newOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=|DataDirectory|\Empinfo.mdb");OleDbCommandcommand=newOleDbCommand(sqlstring,connection);connection.Open();command.ExecuteNonQuery();MessageBox.Show("记录保存成功");}
解决方案
解决方案二:
stringsqlstring="INSERTINTOquesion(queNo,queTxt)VALUES('queNo,'queTxt')";
解决方案三:
引用1楼zetee的回复:
stringsqlstring="INSERTINTOquesion(queNo,queTxt)VALUES('queNo,'queTxt')";
1楼已经指出来了
解决方案四:
应该怎么改才是正确的呢?
解决方案五:
stringsqlstring=string.format("INSERTINTOquesion(queNo,queTxt)VALUES('{0}','{1}')",queNo,queTxt);
解决方案六:
stringsqlstring="INSERTINTOquesion(queNo,queTxt)VALUES("+queNo+",'"+queTxt+"')";
解决方案七:
引用5楼chinawes的回复:
stringsqlstring="INSERTINTOquesion(queNo,queTxt)VALUES("+queNo+",'"+queTxt+"')";
同意!
解决方案八:
insertintoquesion(queNo,queTxt)values('"+queNo+"','"++queTxt"');
解决方案九:
insertintoquesion(queNo,queTxt)values(@queNo,@queTxt);然后用cmd.Parameters.Add("@queNo",OleDbType.VarWChar);cmd.Parameters["@queNo"].Value=ddQueTxb.Text;进行赋值!
解决方案十:
前二天也做过类似的操作:这样写stringsqlstring="INSERTINTOquesion(queNo,queTxt)VALUES("+queNo+",'"+queTxt+"')";
解决方案十一:
queNo不是数字型的么。先把它转换为数字。intqueNo=convert.Toint32(addQueTxb.Text);然后就是那条语句:stringsqlstring=string.format("INSERTINTOquesion(queNo,queTxt)VALUES({0},'{1}')",queNo,queTxt);不知道这样对不对。。