我尝试使用C#将项目添加到我的数据库。 我有一个包含2个表的数据库:
"项目部分"
"项目表" ,在此表中有一个名为"项目名称"
的列但我得到了这个错误:
解析查询时出错。 [令牌行号= 1,令牌 line offset = 21,Token in error = Table]
以下是我正在使用的代码。
private void button1_Click(object sender, EventArgs e)
{
sqlCEC.Open();
//Project_List.Items.Add(new_project_name.Text.ToString());
SqlCeCommand sqlCEcommand = new SqlCeCommand("INSERT INTO Project Table(Project Name) VALUES(@Project Name)", sqlCEC);
sqlCEcommand.Parameters.AddWithValue("@Project Name", new_project_name.Text);
sqlCEcommand.ExecuteNonQuery();
sqlCEC.Close();
}
答案 0 :(得分:1)
您需要用括号括起空格的表和字段。
SqlCeCommand sqlCEcommand = new SqlCeCommand(“INSERT INTO [Project Table]([Project Name])VALUES(@ProjectName)”,sqlCEC);
此外,请勿在参数变量中包含任何空格,请尝试将其更改为@ProjectName
:
sqlCEcommand.Parameters.AddWithValue("@ProjectName", new_project_name.Text);
答案 1 :(得分:1)
包含空格的表名和列名通常必须包含在[
和]
中。此外,参数中不能包含空格
INSERT INTO [Project Table]([Project Name]) VALUES(@ProjectName)
和
sqlCEcommand.Parameters.AddWithValue("@ProjectName", new_project_name.Text);
答案 2 :(得分:1)
当数据库对象包含空格时,需要用方括号括起此名称 也不要使用空格命名参数。
private void button1_Click(object sender, EventArgs e)
{
sqlCEC.Open();
SqlCeCommand sqlCEcommand = new SqlCeCommand("INSERT INTO [Project Table] " +
"([Project Name]) VALUES(@ProjectName)", sqlCEC);
sqlCEcommand.Parameters.AddWithValue("@ProjectName", new_project_name.Text);
sqlCEcommand.ExecuteNonQuery();
sqlCEC.Close();
}
答案 3 :(得分:1)
怎么样?
private void button1_Click(object sender, EventArgs e)
{
sqlCEC.Open();
SqlCeCommand sqlCEcommand = new SqlCeCommand("INSERT INTO [Project Table]([Project Name]) VALUES([@Project Name])", sqlCEC);
sqlCEcommand.Parameters.AddWithValue("@Project Name", new_project_name.Text);
sqlCEcommand.ExecuteNonQuery();
sqlCEC.Close();
}
因为数据库对象包含空格,所以需要用[]
我的谦虚建议是,从不在表格或列名中使用空格或其他特殊字符。