C#中如何显示出数据库表中某一列的所有信息~

来源:百度知道 编辑:UC知道 时间:2024/05/14 08:05:22
RT
SqlConnection con = new SqlConnection("Data Source=(local);Database=UserInfo;Uid=sa;Pwd=;");
con.Open();
string strSQL = "select 账号,注册时间 from Users where 账号= @userid";
SqlCommand cmd = new SqlCommand(strSQL,con);
cmd.Parameters.AddWithValue("@userid", textBox1.Text.Trim());
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read ())
{
label3.Text = dr.GetValue(0).ToString();
label4.Text = dr.GetValue(1).ToString();
}
用这段代码每次都只能查询到一个信息,要怎么样才能让那一列的所有信息都显示出来呢??

可以用下面的代码保存结果到一个DataTable

DataTable dtable;
dtable= new DataTable("info");

//账号
DataColumn dc = new DataColumn();
dc.DataType = System.Type.GetType("System.String");
dc.ColumnName = "账号";
dtable.Columns.Add(dc);

//注册时间
DataColumn dc0 = new DataColumn();
dc0.DataType = System.Type.GetType("System.String");
dc0.ColumnName = "注册时间";
dtable.Columns.Add(dc0);

。。。。
sqlcon.Open();
SqlDataReader dread = sqlcom.ExecuteReader();
while (dread.Read())
{
DataRow dr = pictb.NewRow();

dr["账号"] = dread[0].ToString();
dr["注册信息"] = dread[1].ToString();
dtable.Rows.Add(dr);

}

你用了where 账号= @userid";
那当然只能查到一个了,除非账号= @userid的记录很多,
去掉where 子句就行了

不用SqlDataReader ,用DataSet

1.where 账号= @userid——限定了你的查询条件,只能查到与@userid相同的数据
2. if (dr.Read ())