我创建了一个本地的基于服务的数据库,我正在尝试使用INSERT
语句向其插入数据:
public void InsertRule(Rule r)
{
SqlConnection sqlConnection1 = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\RulesDB.mdf;Integrated Security=True;Connect Timeout=30");
SqlCommand cmd = new SqlCommand();
cmd.CommandText = ("INSERT INTO TblRules (From, To, ExecutablePath) VALUES (@From, @To, @ExecutablePath");
cmd.Parameters.Add("@From",SqlDbType.DateTime);
cmd.Parameters["@From"].Value = r.From;
cmd.Parameters.Add("@To",SqlDbType.DateTime);
cmd.Parameters["@To"].Value = r.To;
cmd.Parameters.Add("@ExecutablePath",SqlDbType.Text);
cmd.Parameters["@ExecutablePath"].Value = r.ExecutablePath;
cmd.Connection = sqlConnection1;
sqlConnection1.Open();
cmd.ExecuteNonQuery();
sqlConnection1.Close();
}
我收到了SqlException
:
其他信息:关键字“From”附近的语法不正确。
提前致谢。
答案 0 :(得分:1)
FROM
是SQL keywoard,因此您无法在语句中使用它。你应该使用方括号[From]
来逃避它。这就是错误的原因
这意味着您需要更改此行
cmd.CommandText = ("INSERT INTO TblRules (From, To, ExecutablePath) VALUES (@From, @To, @ExecutablePath");
到
cmd.CommandText = (@"INSERT INTO TblRules ([From], To, ExecutablePath) VALUES (@From, @To, @executablePath);