c# - Insert-Statement 不起作用 - 没有错误消息

标签 c# sql-server tsql ado.net insert

我是这个网站的新手,但我希望你们中的一些人能帮助我解决我的问题:)

我想通过插入语句将数据保存在 sql 数据库中,我已经以相同的方式为另一个表制作了它,它运行良好。 Visual Web Developer 不报告错误消息,尽管插入没有插入数据。

这是我的一些代码:

public void saveAnswers()
{
    //hier erfolgt das Speichern der Fragen/Antworten in die DB
    List<Question> questionlist = (List<Question>)HttpContext.Current.Session["question"];
    int SurveyID = GetSurveyId(); //SurveyID ist für alle Response-Datensätze gleich


    ArrayList arrAnswerID = new ArrayList();
    ArrayList arrText = new ArrayList();
    ArrayList arrTextID = new ArrayList();

    foreach (Question q in questionlist)
    {
        switch (q.Type)
        {
            case 2: //Freitext
                if (q.Answers.Count > 0)
                {
                    arrAnswerID.Add(0);
                    arrText.Add(q.Answers[0].Text);
                    arrTextID.Add(q.QuestionText[0].TextID);
                }
                break;
            case 3: //Matrixfrage
                foreach (QuestionText qt in q.QuestionText)
                {
                    arrAnswerID.Add(qt.SetAnswer.ID);
                    arrText.Add(qt.SetAnswer.Text);
                    arrTextID.Add(qt.TextID);
                }
                break;
            default: //Einfachauswahl oder Mehrfachauswahl
                foreach (Answer a in q.Answers)
                    if (a.Set)
                    {
                        arrAnswerID.Add(a.ID);
                        arrText.Add(a.Text);
                        arrTextID.Add(q.QuestionText[0].TextID);
                    }
                break;
        }

        //Datenbankzugriff
        for (int i = 0; i < arrAnswerID.Count; i++)
        {
            Command.Connection.Close();
            Command = new SqlCommand();
            Command.CommandText = "INSERT INTO Response (ResponseID, SurveyID, TextID, AnswerID, Text, Comment) VALUES (@ResponseID, @SurveyID, @TextID, @AnswerID, @Text, @Comment)";

            Command.Parameters.AddWithValue("@ResponseID", GetResponseId());
            Command.Parameters.AddWithValue("@SurveyID", SurveyID);
            Command.Parameters.AddWithValue("@TextID", arrTextID[i]);
            Command.Parameters.AddWithValue("@AnswerID", arrAnswerID[i]);
            Command.Parameters.AddWithValue("@Text", arrText[i].ToString());
            Command.Parameters.AddWithValue("@Comment", "");

            Command.CommandType = CommandType.Text;
            Command.Connection = conn;
            Command.Connection.Open();

            Command.ExecuteNonQuery();
            Command.Connection.Close();
        }
        arrAnswerID.Clear();
        arrText.Clear();
        arrTextID.Clear();
    }
}

如果您需要更多信息,请告诉我,我已经在期待您的答复。 祝你有美好的一天

最佳答案

你能检查一下 Command.ExecuteNonQuery(); 返回的是什么吗?

还可以使用 sql 分析器进行调试 this是一步一步的指南,它会让你知道插入语句是否进入 sql

关于c# - Insert-Statement 不起作用 - 没有错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13947854/

相关文章:

sql - 如何改变递归查询的工作方式?

sql - 喜欢模式 '[0-9][0-9][0-1][0-9]'

tsql - SQL MERGE语句中的UPDATE-no-op

c# - 是否可以在 App.xaml.cs 上自动注册 ViewModels 和 Views

c# - 带返回值的递归函数VS使用OUT参数

sql-server - 数据库持续集成的开源工具

sql - 如何在 SQL 中选择一个月的第一天?

c# - 如何创建大量具有不同属性值的对象?

c# - 我可以看到所有 View 在 Visual Studio 2012 MVC 4 App 中是如何内部链接的吗?

sql-server - 未记录的 CONVERT 样式 - 日期时间 23