单击按钮时,如何在文本框中显示不同的sql数据
本文关键字:显示 数据 sql 文本 按钮 单击 | 更新日期: 2023-09-27 18:26:44
我的MySql
数据库由一列id
组成,其中包含从1到30的数字。我想在每次按下按钮时在文本框中显示数字1到30。然而,我的代码只显示第一行,即1。
我已经尝试了以下代码:
SqlConnection Conn = new SqlConnection("Data Source=SUMIT;Initial Catalog=Project;Integrated Security=True");
SqlCommand Comm1 = new SqlCommand("Select * from id", Conn);
Conn.Open();
SqlDataReader DR1 = Comm1.ExecuteReader();
if (DR1.Read()) {
textBox3.Text = DR1.GetValue(0).ToString();
}
Conn.Close();
有几种方法可以做到这一点。
首次使用SQL
保持按钮点击功能之外的数字计数
int BtnCount = 0;
在按钮点击
SqlConnection Conn = new SqlConnection("Data Source=SUMIT;Initial Catalog=Project;Integrated Security=True");
SqlCommand Comm1 = new SqlCommand("Select * from id WHERE ID = " + BtnCount , Conn);
Conn.Open();
SqlDataReader DR1 = Comm1.ExecuteReader();
if (DR1.Read()) {
textBox3.Text = DR1.GetValue(0).ToString();
}
Conn.Close();
BtnCount ++;
if(BtnCount>30)
{
BtnCount = 0;
}
其次,您可以调用集合/列表/数组中的所有数据,这也将提高系统的速度
创建字符串列表
List<string> ListData = new List<string>();
在构造函数中填充列表,如以下
SqlConnection Conn = new SqlConnection("Data Source=SUMIT;Initial Catalog=Project;Integrated Security=True");
SqlCommand Comm1 = new SqlCommand("Select * from id WHERE ID = " + BtnCount , Conn);
Conn.Open();
SqlDataReader DR1 = Comm1.ExecuteReader();
while(DR1.Read())
{
ListData.Add(DR1.GetValue(0).ToString());
}
Conn.Close();
点击按钮,通过BtnCount
显示列表内容
注意:这只是给你一个我还没有运行程序进行测试的想法
我怀疑原因是您的按钮点击事件中有所有代码。因此,每次单击按钮时,它都会创建一个新的连接,执行查询并向您显示第一条记录。
我建议您重新组织代码。
例如,调用SetupData()
函数一次(可能在加载时,也可能在任何地方,只要它只执行一次),然后单击按钮单击事件将只包含if语句。
SqlDataReader DR1;
public void SetupData(){
SqlConnection Conn = new SqlConnection("Data Source=SUMIT;Initial Catalog=Project;Integrated Security=True");
SqlCommand Comm1 = new SqlCommand("Select * from id", Conn);
Conn.Open();
DR1 = Comm1.ExecuteReader();
}
void OnButtonClick(object sender, EventArgs e)
{
if (DR1.Read()) {
textBox3.Text = DR1.GetValue(0).ToString();
}