C#读取sql server数据的问题
建一个button按钮,点击按钮读取数据库中的数据代码如下:
private void button2_Click(object sender, EventArgs e)
{
string sqlstr3 = "select top 2 * from table_2 order by 学号 asc";
SqlCommand cmd1 = new SqlCommand(sqlstr3, sqlConnection1);
sqlConnection1.Open();
SqlDataReader reader= cmd1.ExecuteReader();
if (reader.Read() == true)
{
textBox1.Text = reader.GetString(0);
textBox2.Text = reader.GetString(1);
textBox3.Text = reader.GetString(2);
}
sqlConnection1.Close();
reader.Close();
}
只能输出一行数据,我想改一下,每点击一下button按钮顺序读取数据库中的数据,就是第一次点击输出第一行,第二次点击输出第二行,可以吗?
------解决方案--------------------while(reader.Read())
{
textBox1.Text = reader.GetString(0);
textBox2.Text = reader.GetString(1);
textBox3.Text = reader.GetString(2);
}
------解决方案--------------------定义一个全局变量用来记录当前是第几条记录,然后用计数器定位到这条记录的下一条进行读取。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------对的,datareader里面的行要用循环读出来
------解决方案--------------------定义一个全局变量用来记录当前是第几条记录,然后用计数器定位到这条记录的下一条进行读取
------解决方案--------------------我认为最好的办法:
不需要每点一次都需要到数据库查一次.
1,定义点击次数int clickCount=0;
如果clickCount=0,则到资料库中查询所有需要的列表;
2,
C# code
if(clickCount>0&&数据不为空)
{
//通过LinQ过滤需要的资料在输出相应的资讯.
}
------解决方案--------------------
用DataTable
定义全局变量
int index=0;
DataTable dt=new DataTable();
private void button2_Click(object sender, EventArgs e)
{
if(index<dt.Rows.Count)
{
textBox1.Text = dt.Rows[index][0];
textBox2.Text = dt.Rows[index][1];
textBox3.Text = dt.Rows[index][2];
index++;
}
}