如何在 C# 中使用 SqlCommand 读取每一行和值?

Joe*_*tto 5 c# sql-server asp.net

我是 C# 新手,现在正在摆弄 SQL Server 连接。我的连接正常,可以运行查询,只是无法查看返回的任何数据。我发现您需要运行command.ExecuteReader()才能取回数据,但除了第一列和第一行之外,我无法获取任何其他数据。

这是我的代码:

<%@ WebHandler Language="C#" Class="biquery_query" %>
using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;

public class biquery_query : IHttpHandler {

    public void ProcessRequest (HttpContext context) {
        var query = context.Request.QueryString["query"];
        query = "SELECT * FROM [hidden].[dbo].[hidden]";

        SqlConnection sqlConnection = new SqlConnection(@"Data Source=hidden;Initial Catalog=hidden;User ID=hidden;Password=hidden;");

        // Create Query Command
        SqlCommand command = new SqlCommand();
        command.CommandType = CommandType.Text;
        command.CommandText = query;
        command.Connection = sqlConnection;

        // Open connection and execute query
        sqlConnection.Open();
        command.ExecuteNonQuery();

        using(SqlDataReader rdr = command.ExecuteReader())
        {
            while(rdr.Read())
            {
                string app_id= rdr["app_id"].ToString();
                string app_os= rdr["app_os"].ToString();
                string date= rdr["date"].ToString();
                context.Response.Write(app_id);
            } 
        }

        sqlConnection.Close();
    }

    public bool IsReusable {
        get {
            return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的数据库表有 5 列 ( app_id, app_os, date, unix, users)。

有没有办法我可以选择rdr["app_id"][0]获取第一个 app_id 或rdr["users"][30].

任何帮助将不胜感激,谢谢!

MrZ*_*der 4

ExecuteNonQuery当查询不返回结果集(如 INSERT 或 UPDATE)时使用。

删除对的调用ExecuteNonQuery并仅使用ExecuteReader.