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

发布于 2024-11-04 04:33:03 字数 963 浏览 1 评论 0原文

我有一个网站,设置为查询数据库中的用户名,然后使用用户信息填充 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();
}

UPDATE

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

但现在我得到以下列 栏 1 栏 2 用户 ID 名字

I have a website which is set to query a database for a username, and then populate the Session[] variables with the user's info. When I query using the server's stored procedure, I get back the entire row. How can I split apart the row and parse it so that every column gets parsed separately?

My code for the button is:

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();
}

UPDATE

I updated it to string sqlText = ("select 'UserID', 'FirstName' from [dbo].[User] where UserID='"+txtTest.Text+"' and Password='" + txtPass.Text+"'");

But now I get the following column
Column1 Column2
UserID FirstName

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

臻嫒无言 2024-11-11 04:33:03

要读取列的值,请使用以下命令:

 avar = row["colname"];

To read a column's value use this:

 avar = row["colname"];
如梦 2024-11-11 04:33:03

而不是:

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"];

Instead of:

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

Use:

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

That will return just the column you need.

* UPDATE *

Making a series of queries for all the properties is definitely not a good option. You can select all the columns you need by separating by comma like this:

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

Then you can use the SqlDataReader indexer to get the values you need:

  var username = objReader["username"];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文