C# 检查文本框文本与存储在列表中的数据库中的值相同

夏普学生

我知道为什么会收到此错误,但我不知道解决方法。

  1. 我正在尝试检查用户在文本框中键入的答案是否正确。
  2. 我将通过对照数据库中的答案检查答案来做到这一点。
  3. 我已将数据库中的内容存储到列表中,以便可以将用户的答案与正确答案进行比较。

      {
        string mydbConnection = "datasource=localhost;port=3306;Initial Catalog=project;username=xxx;password=xxx;";
        MySqlConnection connDB = new MySqlConnection(mydbConnection);
        MySqlCommand cmdDataBase = new MySqlCommand("SELECT questions.answer FROM questions;", connDB);
        MySqlDataReader DBReader;
        connDB.Open();
        DBReader = cmdDataBase.ExecuteReader();
        while (DBReader.Read())
        {
            List<string> answers = new List<string>();
            for (int i = 0; i < DBReader.FieldCount; i++)
                answers.Add(DBReader.GetValue(i).ToString());
    
            for (int i = 0; i < answers.Count; i++)
            {
                if (answers[i].Contains(textBoxQ1, textBoxQ2, textBoxQ3, textBoxQ4, textBoxQ5, textBoxQ6, textBoxQ7, textBoxQ8, textBoxQ9, textBoxQ10))
                {
                    label1.Text = "Well done, Correct Answer";
                }
                else
                {
                    label1.Text = "unlucky, wrong answer";
                }
            }
        }
    }    
    

    我收到错误消息:

方法 'Contains' 没有重载需要 10 个参数

我知道为什么我收到错误。我认为这是因为“包含”方法只能采用 1 个参数。但是我不知道如何解决这个问题。我的问题是如何通过代码进行修改以实现此目标?

编辑:

妮贝瑞

当您从数据库中检索问题时,您将为每个问题检索问题文本和问题 ID。

稍后,使用 questionID 获取该单个问题的正确答案。例如,当您有 questionid 42 的问题时,您可以通过以下方式获得该问题的正确答案

select answer from questions where questionID = 42;

现在在您的应用程序中执行以下操作:

对于用户输入的每个答案,从网格中检索 questionID。然后通过上面显示的语句从数据库中检索该问题的正确答案。然后将该答案与用户在相应文本框中输入的答案进行比较。


另一种选择是,在填充问题并将答案存储在 DataGridView 的隐藏列中时,您已经从数据库中获得了正确答案。然后您甚至不必再次去数据库检查答案,而只需将用户给出的答案与已经存储在 DataGridView 中的答案进行比较即可。

第二种方法的一些示例代码,不使用数据库,而是手动初始化数据网格。

private void Form1_Load(object sender, EventArgs e)
{
    // Fill data grid
    DataTable dataTable = new DataTable();

    dataTable.Columns.Add("QuestionID");
    dataTable.Columns.Add("Question");
    dataTable.Columns.Add("Answer");

    dataTable.Rows.Add(1, "5 + 4", "9");
    dataTable.Rows.Add(2, "Capital of Germany", "Berlin");
    dataTable.Rows.Add(23, "Angela ...", "Merkel");
    dataTable.Rows.Add(42, "Capital of France", "Paris");

    dataGridViewQuiz.DataSource = dataTable;

    // Hide id and answer
    dataGridViewQuiz.Columns["QuestionID"].Visible = false;
    dataGridViewQuiz.Columns["Answer"].Visible = false;
}

// function to check an individual answer from a given TextBox
// against a given row in the datagrid.
private bool CheckAnswer(DataGridViewRow dataGridViewRow, TextBox textBox)
{
    string correctAnswer = dataGridViewRow.Cells["Answer"].Value.ToString();
    string givenAnswer = textBox.Text;

    bool isCorrect = string.Equals(correctAnswer, givenAnswer, StringComparison.CurrentCultureIgnoreCase);

    return isCorrect;
}

private void buttonCheck_Click(object sender, EventArgs e)
{
    bool firstAnswerCorrect = CheckAnswer(dataGridViewQuiz.Rows[0], textBoxQ1);
    bool secondAnswerCorrect = CheckAnswer(dataGridViewQuiz.Rows[1], textBoxQ2);
    bool thirdAnswerCorrect = CheckAnswer(dataGridViewQuiz.Rows[2], textBoxQ3);
    bool fourthAnswerCorrect = CheckAnswer(dataGridViewQuiz.Rows[3], textBoxQ4);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C#中显示密码文本框的纯文本

来自分类Dev

动态将文本框添加到C#.net中的数据绑定复选框列表

来自分类Dev

如何检查文本框中的值在连接的数据库中是否已经存在

来自分类Dev

从文本框asp.net C#将数据保存到sql数据库

来自分类Dev

在C#中显示密码文本框的纯文本

来自分类Dev

C#从文本框中读取并计算多个值

来自分类Dev

数据从数据库显示到文本框C#

来自分类Dev

如何在C#中收集文本框中的所有列表框项目

来自分类Dev

如何使用数据库表在C#中创建自动建议文本框

来自分类Dev

C#文本框更新sql数据库

来自分类Dev

如何通过文本框(Windows窗体)C#检查我的数据库中是否存在主键

来自分类Dev

在C#中从Excel中的文本框导入数据

来自分类Dev

禁用和检查存储在C#数据库中的`CheckBoxList`的值

来自分类Dev

在C#中舍入文本框的值

来自分类Dev

使用C#MVC将值列表放入单独的文本框中

来自分类Dev

如何从列表视图中选取数据并在C#中的文本框中显示数据?

来自分类Dev

如何仅从选定的文本框中更新数据库以获取选择性信息?(asp.net C#)

来自分类Dev

如何使用C#中的where从文本框中插入数据以访问数据库

来自分类Dev

使用Access数据库显示粘贴在富文本框中的图像到C#中的Crystal报表

来自分类Dev

使用C#将文本框中的日期与ASP.NET中数据库中的日期进行比较

来自分类Dev

使用选定的项目更改组合框从数据库加载文本框 c#

来自分类Dev

提交表单后如何检查数据库中存在的文本框值

来自分类Dev

C# 返回组合框中的数据库列表

来自分类Dev

在 C# 中读取文本框列表

来自分类Dev

c#从列表框中搜索文本框

来自分类Dev

C# - 如何在 windowform 中获取具有相同标签值的文本框列表?

来自分类Dev

一旦文本框的值存储在数据库中,禁用它 - PHP

来自分类Dev

将列表放在 c# windowsform 的文本框中

来自分类Dev

1的值存储在数据库中而不是文本框值/ PHP-MySql

Related 相关文章

  1. 1

    在C#中显示密码文本框的纯文本

  2. 2

    动态将文本框添加到C#.net中的数据绑定复选框列表

  3. 3

    如何检查文本框中的值在连接的数据库中是否已经存在

  4. 4

    从文本框asp.net C#将数据保存到sql数据库

  5. 5

    在C#中显示密码文本框的纯文本

  6. 6

    C#从文本框中读取并计算多个值

  7. 7

    数据从数据库显示到文本框C#

  8. 8

    如何在C#中收集文本框中的所有列表框项目

  9. 9

    如何使用数据库表在C#中创建自动建议文本框

  10. 10

    C#文本框更新sql数据库

  11. 11

    如何通过文本框(Windows窗体)C#检查我的数据库中是否存在主键

  12. 12

    在C#中从Excel中的文本框导入数据

  13. 13

    禁用和检查存储在C#数据库中的`CheckBoxList`的值

  14. 14

    在C#中舍入文本框的值

  15. 15

    使用C#MVC将值列表放入单独的文本框中

  16. 16

    如何从列表视图中选取数据并在C#中的文本框中显示数据?

  17. 17

    如何仅从选定的文本框中更新数据库以获取选择性信息?(asp.net C#)

  18. 18

    如何使用C#中的where从文本框中插入数据以访问数据库

  19. 19

    使用Access数据库显示粘贴在富文本框中的图像到C#中的Crystal报表

  20. 20

    使用C#将文本框中的日期与ASP.NET中数据库中的日期进行比较

  21. 21

    使用选定的项目更改组合框从数据库加载文本框 c#

  22. 22

    提交表单后如何检查数据库中存在的文本框值

  23. 23

    C# 返回组合框中的数据库列表

  24. 24

    在 C# 中读取文本框列表

  25. 25

    c#从列表框中搜索文本框

  26. 26

    C# - 如何在 windowform 中获取具有相同标签值的文本框列表?

  27. 27

    一旦文本框的值存储在数据库中,禁用它 - PHP

  28. 28

    将列表放在 c# windowsform 的文本框中

  29. 29

    1的值存储在数据库中而不是文本框值/ PHP-MySql

热门标签

归档