C#内SQL语句引号问题

来源:百度知道 编辑:UC知道 时间:2024/04/27 14:24:23
OleDbCommand cmd = new OleDbCommand("Select mcontent from MainInfo where mid='"+100+"'", con);

OleDbCommand cmd = new OleDbCommand("Select mcontent from MainInfo where mid='100'", con);
OleDbDataReader odr = cmd.ExecuteReader();
string s = odr["mcontent"].ToString();
都提示"标准表达式中数据类型不匹配"

OleDbCommand cmd = new OleDbCommand("Select mcontent from MainInfo where mid=100", con);
OleDbDataReader odr = cmd.ExecuteReader();
string s = odr["mcontent"].ToString();
出错提示"不存在此行/列的数据。"(应该是没读出来)
可是,我看表里面对应mid(文本类型)=100 是有一条数据的

前面加单引号的是错误的,因为你的mid理论上是个数字列。

至于下面的错误。阿门,你在用 odr["mcontent"] 前没有调用 odr.Read() 方法,当然不会读数据的。

---------------------
注意,用 odr["mcontent"] 前需要调用 odr.Read() 方法。

OleDbCommand cmd = new OleDbCommand("Select mcontent from MainInfo where mid=100", con);
OleDbDataReader odr = cmd.ExecuteReader();
odr.Read(); //注意此行,必须。
string s = odr["mcontent"].ToString();

应该是没有数据吧,你的用法是正确的

OleDbCommand cmd = new OleDbCommand("Select mcontent from MainInfo where mid='100'", con); 这句应该是可以的。
可以试试下面的:
string vmid="100";
string sql = "Select mcontent from MainInfo where mid='"+vmid+"'";
OleDbCommand cmd = new OleDbCommand (sql,con);

你把OleDbCommand里的查询语句先Format一下:
string str= string.Format("Select mcontent from MainInfo where mid={0}",变量)
然后在OleDbCommand cmd = new OleDbCommand(str);