ExecuteReader在文本框中返回“System.Data.SqlClient.SqlDataReader”

时间:2013-12-08 14:25:23

标签: c# sql-server-2008 ado.net

我对此代码有疑问,我不知道为什么会这样。

代码:

SqlConnection getconn = new SqlConnection(somthing secured);              
string sql = "select  pk_stu_id , stu_name   from MRK , STU , LSN where fk_stu_id = pk_stu_id and fk_lsn_id = pk_lsn_id AND pk_lsn_id="
      + int.Parse(textBoxSearchStudentID.Text)
      + " and pk_stu_id="
      + int.Parse(textBoxSearchLessonID.Text); 



SqlCommand cmd = new SqlCommand(sql, getconn);
getconn.Open();
SqlDataReader result  = cmd.ExecuteReader();
while (result.Read())
{
    textBoxDataSend.Text = string.Empty;
    textBoxDataSend.Text = result.ToString();
}
getconn.Close();

但它总是返回:“System.Data.SqlClient.SqlDataReader”。

有谁知道如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

问题:您是直接为SqlDataReader分配TextBox个对象。

解决方案:您需要通过columns列或列提供query使用SqlDataReader对象返回的所需name index

替换它:

textBoxDataSend.Text = result.ToString();

用这个:

textBoxDataSend.Text = result["stu_name"].ToString();//or you can give any other column name here

答案 1 :(得分:0)

如果使用object ToString(),那么object将为您提供ToString()类型,除非override class具体位于{{1}}内{{1}} 1}}。