C# 尝试将文本框内容插入数据库C时出错#

C# 尝试将文本框内容插入数据库C时出错#,c#,sql,sql-server,database,textbox,C#,Sql,Sql Server,Database,Textbox,我试图将文本框的内容放入名为[Questions Space]的表中,但问题文本为“:”,connect);在下面加上了错误 只有赋值、调用、递增、递减、等待和新对象表达式可以用作语句 及 无效的表达式术语“,”和“')” 我似乎找不到任何地方来解决这个问题,我相信解决这个问题没有那么困难,但我是个新手 string QuestionText = QuestionBox.Text; SqlCommand command5 = new SqlCommand("INSERT INTO Questi

我试图将文本框的内容放入名为[Questions Space]的表中,但问题文本为“:”,connect);在下面加上了错误

只有赋值、调用、递增、递减、等待和新对象表达式可以用作语句

无效的表达式术语“,”和“')”

我似乎找不到任何地方来解决这个问题,我相信解决这个问题没有那么困难,但我是个新手

string QuestionText = QuestionBox.Text;

SqlCommand command5 = new SqlCommand("INSERT INTO Questions ([Question Space]) VALUES ({0})"QuestionText,connect);
我也尝试过,但也不起作用:

 SqlCommand command5 = new SqlCommand("INSERT INTO Questions ([Question Space]) VALUES ({0})"QuestionText,connect);
我非常感谢你的帮助

如果有人想看到这个按钮,下面是我的完整代码:

  private void button1_Click(object sender, EventArgs e)
    {


        string connectionString = ConfigurationManager.ConnectionStrings["myconnectionstring"].ConnectionString;
        SqlConnection connect = new SqlConnection(connectionString);
        connect.Open();

        int checkedradiobutton = 0;


        if(radioButton1.Checked)
        {
            checkedradiobutton = 1;

        }
        else if(radioButton2.Checked)
        {
            checkedradiobutton = 2;
        }
        else if(radioButton3.Checked)
        {
            checkedradiobutton = 3;
        }



        switch (checkedradiobutton)
        {
            case 0: MessageBox.Show("Please select a question type");
                break;
            case 1: 
                SqlCommand command1 = new SqlCommand("INSERT INTO Questions ([Question Type]) VALUES (1)",connect);
                command1.ExecuteNonQuery();
                break;


            case 2:

                SqlCommand command2 = new SqlCommand("INSERT INTO Questions ([Question Type]) VALUES (2)",connect);
                command2.ExecuteNonQuery();
                break;
            case 3: 

                SqlCommand command3 = new SqlCommand("INSERT INTO Questions ([Question Type]) VALUES (3)",connect);
                command3.ExecuteNonQuery();
                break;

        }




        string QuestionText = QuestionBox.Text;

        SqlCommand command5 = new SqlCommand("INSERT INTO Questions ([Question Space]) VALUES ("QuestionText")",connect);

        command5.ExecuteNonQuery();




    }

应该是这样的:
String.Format(“插入问题([Question Space])值(“{0}”)”,QuestionText)

您缺少文本的insert语句周围的单引号,并且您的sql显示为

INSERT INTO Questions([Question Space]) VALUES (This is the question text)

应该是这样的:
String.Format(“插入问题([Question Space])值(“{0}”)”,QuestionText)

您缺少文本的insert语句周围的单引号,并且您的sql显示为

INSERT INTO Questions([Question Space]) VALUES (This is the question text)

应该是下面,

SqlCommand command5 = new SqlCommand("INSERT INTO Questions ([Question Space]) VALUES ('" + QuestionText + "')",connect);
话虽如此,您不应该使用这种创建命令文本的机制。您应该使用命令参数来降低SQL注入的风险

这还将考虑到值中的单引号

下面是一个例子:

SqlCommand command5 = new SqlCommand("INSERT INTO Questions ([Question Space]) VALUES (@QuestionText)",connect);

command5.Parameters.AddWithValue("@QuestionText", QuestionText);
command5.ExecuteNonQuery();

应该是下面,

SqlCommand command5 = new SqlCommand("INSERT INTO Questions ([Question Space]) VALUES ('" + QuestionText + "')",connect);
话虽如此,您不应该使用这种创建命令文本的机制。您应该使用命令参数来降低SQL注入的风险

这还将考虑到值中的单引号

下面是一个例子:

SqlCommand command5 = new SqlCommand("INSERT INTO Questions ([Question Space]) VALUES (@QuestionText)",connect);

command5.Parameters.AddWithValue("@QuestionText", QuestionText);
command5.ExecuteNonQuery();

抱歉,标题错误,我更正了iT更新了答案以解决您的问题,使用单引号接近old抱歉,标题错误,我更正了iT更新了答案以解决您的问题,使用单引号接近old知道代码为什么停在command5.executeOnQuery();并表示System.Data.dll中发生了“System.Data.SqlClient.SqlException”类型的未处理异常。其他信息:“old”附近的语法不正确?“old”是文本中字符串的第二个单词box@mot375如前所述,如果使用命令参数,则不会遇到此错误。这很可能是因为您有一个接近old的单引号;并表示System.Data.dll中发生了“System.Data.SqlClient.SqlException”类型的未处理异常。其他信息:“old”附近的语法不正确?“old”是文本中字符串的第二个单词box@mot375如前所述,如果使用命令参数,则不会遇到此错误。这很可能是因为你有一个接近旧的报价。哦,非常感谢你的额外帮助,以及!工作就像一种享受!哦,非常感谢你的额外帮助!工作就像一种享受!