向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'附近语法错误。

向LocalDB执行INSERT命令

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);