Asp.Net Подключение к базе данных C # не работает

#c# #asp.net #database #web-config #connection-string

#c# #asp.net #База данных #web-config #строка подключения

Вопрос:

У меня есть эта строка подключения в моем web.config :

 <connectionStrings>
    <add name="SQLServerConnectionString"
         connectionString= "..."
         providerName="System.Data.SqlClient" />
</connectionStrings>
  

И этот простой код C # для извлечения из базы данных:

 dbAD.SelectCommand = new OleDbCommand("SELECT * FROM Profile ORDER BY FullName ASC", dbConnect);
dbAD.Fill(dbRS, "Profile");

if (dbRS.Tables("Profile").Rows.Count > 0)
{
    foreach (DataRow employee in dbRS.Tables("Profile").Rows)
    {
        Response.Write("Employee: "   Profile("FullName")   " "   Profile("Academy")   "<p>");
    }
}
  

Однако я получаю сообщение об ошибке:

Имя ‘dbAD’ не существует в текущем контексте

Я так понимаю, мне нужно определить dbAD или несколько других переменных перед этим, но я бы только догадывался.

Заранее спасибо!

Комментарии:

1. Привет, как инициализировать dbAD, DBConnect, dbRS?

2. Привет @Esperento57 — боюсь, приведенный выше код — это все, что у меня есть.

3. Я надеюсь, что пароль не является реальным паролем вашей онлайн-базы данных. Не очень разумно публиковать эту информацию.

4. @steve большое спасибо, Стив. Конечно, это было изменено для стека

Ответ №1:

попробуйте этот код:

я до:

         using System.Data;
        using System.Data.OleDb;
        using System.Web.Configuration;



        OleDbConnection oledbCnn=null;
        OleDbDataAdapter oledbAdapter = null;
        DataSet ds=null;

        string connetionString = WebConfigurationManager.ConnectionStrings["SQLServerConnectionString"].ConnectionString;
        string sql = "SELECT * FROM Profile ORDER BY FullName ASC";


        try
        {
            oledbCnn = new OleDbConnection(connetionString);
            oledbCnn.Open();

            oledbAdapter = new OleDbDataAdapter(sql, oledbCnn);

            ds = new DataSet();
            oledbAdapter.Fill(ds, "Profile");

            foreach (DataRow row in ds.Tables["Profile"].Rows)
            {
                Response.Write("Employee: "   " "   row["FullName"].ToString()   " "   row["Academy"].ToString()   "<p>");
            }

            oledbCnn.Close();
        }
        catch (Exception ex)
        {
            Response.Write("Can not open connection ! ");
        }
        finally
        {
            if (oledbCnn != null) oledbCnn.Dispose();
            if (oledbAdapter != null) oledbAdapter.Dispose();
            if (ds != null) ds.Dispose();
        }
  

Комментарии:

1. @davidxc честно говоря, если вы разговариваете с SQL Server, SqlConnection это должно быть вашим предпочтительным выбором в любом случае ; Я подозреваю, что вам следует просто удалить любое упоминание SQLOLEDB из строки подключения…

2. и добавьте с помощью System.Web.Configuration; тоже

3. какой номер строк?

4. измените ответ. Напишите(«Сотрудник: » » » строка [«Полное имя»]. toString() » » строка [«Академия

5. Я изменил свой код, чтобы указать, что вы затем используете 😉