Почему C # не показывает таблицу - PullRequest
2 голосов
/ 07 марта 2012

Я использую Visual Web Developer 2010 Express и SQL Server 2008 R2 Management Studio Express

Привет, ребята,

Довольно новый здесь, на C #.Я пытаюсь следовать этому 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 ]

3 голосов
/ 07 марта 2012

Поскольку ваш пример выглядит как 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
        }
    }
  }
}

Возможно, вам будет очень полезно взглянуть на элементы управления, связанные с данными или просто используйте другой тип проекта (например, winForm, console, ...)

1 голос
/ 07 марта 2012

Создайте Консольное приложение вместо созданного вами веб-приложения. В противном случае вы столкнетесь с аналогичными проблемами, если вы новичок в C # (или Visual Studio в целом), а в остальной части учебника интенсивно используется Console.WriteLine.

Тогда вы можете использовать тот же код, как показано в руководстве.

Console Application from Visual Studio 2008

В дополнение, если вас беспокоит косая черта на сервере базы данных (это экземпляр сервера базы данных), вы можете попробовать это:

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

Источник: Справочник по строкам подключения

0 голосов
/ 07 марта 2012

зачем console.writeline показывать что-либо. вы не работаете на консоли.

на всякий случай, чтобы увидеть ваш вывод. используйте Response.writeline (rdr [0]);

...