我有一个网站设置为在数据库中查询用户名,然后使用用户的信息填充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 Column2 UserID FirstName
答案 0 :(得分:1)
要读取列的值,请使用:
avar = row["colname"];
答案 1 :(得分:0)
而不是:
string sqlText = ("select * from [dbo].[User]");
使用:
string sqlText = ("select username from [dbo].[User]");
这将只返回您需要的列。
*更新*
对所有属性进行一系列查询绝对不是一个好选择。您可以通过逗号分隔所需的所有列:
string sqlText = ("select username, otherfield, evenAnotherField from [dbo].[User]");
然后,您可以使用SqlDataReader indexer来获取所需的值:
var username = objReader["username"];