从ADO中检索单个列.NET结果集



我有一个网站,设置为查询数据库的用户名,然后用用户的信息填充Session[]变量。当我使用服务器的存储过程进行查询时,我将返回整个行。如何分割行并解析它,以便分别解析每一列?

我的按钮代码是:

protected void Button4_Click(object sender, EventArgs e)
{
    string strConn = WebConfigurationManager.ConnectionStrings["TicketsConnectionString"].ConnectionString;
    SqlConnection myConnection = new SqlConnection(strConn);
    //Search button
    string sqlText = ("select * from [dbo].[User]");



    SqlCommand myCommand = new SqlCommand(sqlText,myConnection);
    myCommand.CommandType = CommandType.Text;
    myConnection.Open();
    SqlDataReader objReader;
    objReader = myCommand.ExecuteReader();
    objGrid.DataSource = objReader;
    objGrid.DataBind();
}

我更新为string sqlText = ("select 'UserID', 'FirstName' from [dbo].[User] where UserID='"+txtTest.Text+"' and Password='" + txtPass.Text+"'");

但是现在我得到了下面的列Column1 Column2UserID FirstName

读取一个列的值:

 avar = row["colname"];

而不是:

string sqlText = ("select * from [dbo].[User]");

使用:

 string sqlText = ("select username from [dbo].[User]");

这将返回您需要的列。

* UPDATE *

对所有属性进行一系列查询绝对不是一个好的选择。您可以选择您需要的所有列,用逗号分隔,像这样:

 string sqlText = ("select username, otherfield, evenAnotherField from [dbo].[User]");

然后你可以使用SqlDataReader索引器来获取你需要的值:

  var username = objReader["username"];

最新更新