为什么C#不显示表格

时间:2012-03-07 19:07:58

标签: c# asp.net sqlconnection sqlcommand

我正在使用Visual Web Developer 2010 Express和SQL Server 2008 R2 Management Studio Express

嘿伙计们,

C#的新功能。我正在尝试关注this C#ADO.NET教程(目前在步骤2上),我很难过。我正在执行所有步骤,一切都对我有意义,但每当我尝试调试时,它都没有显示任何内容(在c#方法的意义上没有将Northwind数据库中的表打印到我的网页上) WebApplication1的Default.aspx页面。

有一段时间,我认为这是我的连接字符串conn,我没有命名"Data Source"属性,根据我的理解,这是我正在尝试的服务器的名称连接至。它全部在本地机器上,我正在使用正确的服务器名称..我想。服务器名称为AZUES-221\JDOESQLSERVER

我正在逃避反向斜线,但我仍然不知道。我的编码中有什么东西是有缺陷的吗?请帮忙!

C#代码

using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;

namespace WebApplication1
{
    public partial class SqlConnectionDemo : System.Web.UI.Page
    {


        protected void Main(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("Data Source=AZUES-221\\JDOESQLSERVER; Initial Catalog=Northwind; Integrated Security=SSPI");

            SqlDataReader rdr = null;

            try
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand("SELECT * FROM Customers", conn); //passed the connection

                rdr = cmd.ExecuteReader(); // get query results

                while (rdr.Read()) //prints out whatever was
                { Console.WriteLine(rdr[0]); }//selected in the table
            }

            finally
            {
                if (rdr != null)// closes
                { rdr.Close(); }// the reader

                if (conn != null)//closes
                { conn.Close(); }// the connection

            }
        }
    }
}

提前致谢

3 个答案:

答案 0 :(得分:3)

由于您的示例似乎是 WebProject ,请尝试将您的代码放在Page_Load eventHandler中。之后,您应该尝试将数据打印到Debug窗口或网页中的控件。

using System;
using System.Data;
// and all the others ...

namespace WebApplication1
{
  public partial class SqlConnectionDemo : System.Web.UI.Page
  {
    protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection("Data Source=AZUES-221\\JDOESQLSERVER; Initial Catalog=Northwind; Integrated Security=SSPI");
        SqlDataReader rdr = null;

        try
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand("SELECT * FROM Customers", conn); 
            rdr = cmd.ExecuteReader(); // get query results

            while (rdr.Read()) //prints out whatever was
            { 
                System.Diagnostics.Debug.WriteLine(rdr[0]); // or on the other hand
                lblOutput.Text += rdr[0];   // as a "quick and dirty" solution!
            }
        }

        finally
        {
            if (rdr != null)// closes
            { rdr.Close(); }// the reader
            if (conn != null)//closes
            { conn.Close(); }// the connection
        }
    }
  }
}

您可能会发现查看databound controls或仅使用其他类型的项目非常有用(例如winForm,console,...)

答案 1 :(得分:1)

创建控制台应用程序,而不是您创建的Web应用程序。 否则,您将遇到类似的问题,考虑到您是C#(或一般的Visual Studio)的新手并且考虑到本教程的其余部分大量使用Console.WriteLine。

然后您可以使用与教程中显示的相同的代码。

Console Application from Visual Studio 2008

如果你担心数据库服务器中的斜杠(它是一个数据库服务器实例),你可能会尝试这样做:

    SqlConnection conn = new SqlConnection(@"Server=AZUES-221\JDOESQLSERVER;Database=Northwind;Trusted_Connection=True;");

来源:Connection Strings Reference

答案 2 :(得分:0)

为什么console.writeline会显示任何内容。你没有在控制台上工作。

以防只看到你的输出。使用Response.writeline(rdr [0]);