向LocalDB执行INSERT命令
本文关键字:命令 INSERT 执行 LocalDB | 更新日期: 2023-09-27 17:53:46
我已经创建了一个本地基于服务的数据库,我正试图用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'附近语法错误。
FROM
是SQL关键字,因此你不能在语句中使用它。您应该使用方括号[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);