在LocalDB中执行INSERT命令

时间:2016-06-30 08:41:26

标签: c# sql-server database

我创建了一个本地的基于服务的数据库,我正在尝试使用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”附近的语法不正确。

提前致谢。

1 个答案:

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