如何将项目添加到数据库?

时间:2013-02-20 15:07:39

标签: c# database listbox

我尝试使用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();
    }

4 个答案:

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

因为数据库对象包含空格,所以需要用[]

将它们括起来

我的谦虚建议是,从不在表格或列名中使用空格或其他特殊字符。