簡體   English   中英

將按鈕作為C#中的參數傳遞

[英]passing button as a parameter in C#

我是C#的新手,我想練習如何使用參數,但是遇到了一些麻煩。 我正在設計一個系統,每當學生單擊“查看”按鈕時,系統都應從數據庫中查看每個問題。

目的:

我要實現的是,當用戶單擊標記為“下一個”的按鈕時。 系統應“查看; 下一個問題放在datagrid上。 我以為也許我應該做一個查詢,上面寫着“從...中選擇問題……wherequestID = btnView。”,也許有一個函數,每當用戶單擊按鈕時,它就會通過1,2,3 ... 10作為questionID (因為有10個問題)

這是我的C#代碼:

try
{
string mydbConnection = "datasource=localhost;port=3306;Initial Catalog=project;username=***;password=***;";
MySqlConnection connDB = new MySqlConnection(mydbConnection);
MySqlCommand cmdDataBase = new MySqlCommand("SELECT questions.question, questions.answer FROM questions WHERE questionID ='" + questionID +  "' ;",connDB);
connDB.Open();
MySqlDataAdapter sda = new MySqlDataAdapter();
sda.SelectCommand = cmdDataBase;
DataTable dbdataset = new DataTable();
sda.Fill(dbdataset);
BindingSource bSource1 = new BindingSource();
sda.Update(dbdataset);
bSource1.DataSource = dbdataset;
dataGridView1.DataSource = bSource1;
sda.Update(dbdataset);
this.dataGridView1.Columns[3].Visible = false;
this.dataGridView1.Columns[0].Visible = false;
connDB.Close();
}

這是我獲取每個“ questionID”的按鈕功能

private void button1_Click(object sender, EventArgs e)
{
   for (int i = 1; i >= 10; i++)
  {
    int questionID = i;
  }
  viewQuestion(questionID);
}

questionID在當前上下文中不存在。

注意:

我只希望datagrid上的內容在用戶單擊按鈕時查看每個問題。

編輯:

  int questionID =  0;
  for (int i = 1; i >= 10; i++)
  {
    int questionID = i;
  }
  viewQuestion(questionID);

原因:

無法在此范圍內聲明名為“ questionID”的本地或參數,因為該名稱在封閉的本地范圍內用於定義本地或參數

當用戶單擊標記為“下一個”的按鈕時。 系統應“查看”。

因此,無需單擊即可循環。您必須將questionID設為同一類中的全局變量,並在每次單擊中增加questionID的值。 這意味着您可以執行以下操作:

int questionID = 0;   // Global variable
private void button1_Click(object sender, EventArgs e)
{
   if(questionID <=10)
   {
      viewQuestion(questionID);
      questionID++;
   }
   else
   {
      // Display message that question over
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM