-2

我正在尝试执行此语句以将一些值插入数据库。

com = new SqlCeCommand("INSERT INTO [cars table]"
      + "([Car reg no],[MOT expiry date], Mileage,[Other information])"
      + "VALUES (" + m._INSERTCarRegNo + "," + m._INSERTExpiryDate + "," 
      + m._INSERTMileage + "," + m._INSERTotherInformation 
      + ")",this.returnConnection);

以上是我的陈述,但我得到一个错误,错误是无法解析字符串。谁能帮我吗?

谢谢

4

4 回答 4

1

您忘记了字符串值周围的引号。

com = new SqlCeCommand("INSERT INTO [cars table]"
  + "([Car reg no],[MOT expiry date], Mileage,[Other information])"
  + "VALUES ('" + m._INSERTCarRegNo + "','" + m._INSERTExpiryDate + "','" 
  + m._INSERTMileage + "','" + m._INSERTotherInformation 
  + "')",this.returnConnection);

(数字值不需要单引号)

于 2012-07-19T08:59:48.487 回答
1

始终使用Parameters以避免此类问题和 SQL 注入。

var sql=@"INSERT INTO [cars table] 
         ([Car reg no],[MOT expiry date], Mileage,[Other information])
          VALUES (@Carregno,@MOTexpirydate,@Mileage,@Otherinformation])";

com = new SqlCeCommand(sql,this.returnConnection);
com.Parameters.AddWithValue("@Carregno",m._INSERTCarRegNo);
..
于 2012-07-19T09:03:05.857 回答
1

这将是一个更清洁的解决方案(比构建您自己的 SQL 字符串)...

com = 
  new SqlCeCommand(
  "INSERT INTO [cars table] " + 
  "([Car reg no],[MOT expiry date], Mileage,[Other information] " + 
  "VALUES " + 
  "(@reg, @expiry, @mileage, @otherinfo)"
  , this.returnConnection);

com.Parameters.AddWithValue("@reg" , m._INSERTCarRegNo);
com.Parameters.AddWithValue("@expiry" , m._INSERTExpiryDate);
com.Parameters.AddWithValue("@mileage" , m._INSERTMileage);
com.Parameters.AddWithValue("@otherinfo" , m._INSERTotherInformation);
于 2012-07-19T09:05:05.330 回答
0

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以key,created,activations,used,hotelid)values(b,1-29-13, 3,1,11)在第 1 行附近使用正确的语法

于 2013-01-30T11:30:20.203 回答