2012-06-23 6 views
-1

Я просто хочу просмотреть результаты в базе данных. Вот и все, что я пытаюсь сделать в этот момент! Это ошибка, я получаю, когда я пытаюсь отлаживать:Связанная с сетью или конкретная ошибка экземпляра при установлении соединения с SQL Server

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

Он указывает на этой линии:

// fill dataset into named table 
myAdapter.Fill(myDataSet, "Sent"); 

Вот весь мой код:

// get connection strings from app.config 
    string conString = ConfigurationManager.ConnectionStrings["Database1ConnectionString"].ConnectionString; 

    // connection object 
    SqlConnection myConn = new SqlConnection(conString); 

    // create adapter 
    SqlDataAdapter myAdapter = new SqlDataAdapter("select * from `Sent`", myConn); 

    // create command builder 
    SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter); 

    // create dataset 
    DataSet myDataSet = new DataSet(); 

    // fill dataset into named table 
    myAdapter.Fill(myDataSet, "Sent"); 

    // query using linq 
    IEnumerable<DataRow> results 
     = from row in myDataSet.Tables["Sent"].AsEnumerable() 
      select row; 

    // enumerate through results 
    foreach (DataRow row in results) 
    { 
     MessageBox.Show(row.ToString()); 
    } 

Что я могу сделать, чтобы почини это? Кроме того, если у кого-то есть более простой способ использовать базы данных на C#, я открыт для ваших идей, потому что это было для меня смешно (манипулирование базой данных в C#). Спасибо за помощь.

Update 6/29/12:

Следующий код работает для меня:

 // get connection strings from app.config 
     string conString = ConfigurationManager.ConnectionStrings["Database1ConnectionString"].ConnectionString; 

     // connection object 
     SqlCeConnection myConn = new SqlCeConnection(conString); 

     // create adapter 
     SqlCeDataAdapter myAdapter = new SqlCeDataAdapter("select * from [Sent]", myConn); 

     // create command builder 
     SqlCeCommandBuilder myCommandBuilder = new SqlCeCommandBuilder(myAdapter); 

     // create dataset 
     DataSet myDataSet = new DataSet(); 

     // fill dataset into named table 
     myAdapter.Fill(myDataSet, "Sent"); 

     // create new row 
     DataRow newRow = myDataSet.Tables["Sent"].NewRow(); 

     // set field vals 
     newRow["sendTo"] = sendTo; 
     newRow["subject"] = subject; 
     newRow["message"] = message; 

     // add new row to table 
     myDataSet.Tables["Sent"].Rows.Add(newRow); 

     // update database 
     myAdapter.UpdateCommand = myCommandBuilder.GetUpdateCommand(); 
     int updatedRows = myAdapter.Update(myDataSet, "Sent"); 
     //MessageBox.Show("There were "+updatedRows.ToString()+" updated rows"); 

     // close connection 
     myConn.Close(); 
+1

Первое, что вам нужно проверить, - это ваша строка подключения в порядке и если она указывает на правильный сервер/базу данных. –

+10

Первый шаг: прочитайте сообщение и действуйте на нем. Второй шаг: Google сообщение. – usr

+0

Я согласен с @usr. Сообщение об ошибке очень понятно и, даже если это не по какой-то причине, через несколько секунд Google быстро ответит на это. Проблема связана с вашей строкой соединения или с самим SQL-сервером. Этот вопрос здесь не принадлежит. Ожидается, что вы, по крайней мере, попробуете провести какое-то беглое исследование, прежде чем задавать здесь вопрос. – dodexahedron

ответ

0

Я не использовал правильный код (он не имеет ничего общего с какой-либо связи вещей). Это был мой первый треск при попытке подключиться к базе данных на языке, отличном от PHP. Теперь я, вероятно, использовал бы выражения LINQ или Lambda, чем этот код. Но вот что я использовал, который работал:

// get connection strings from app.config 
    string conString = ConfigurationManager.ConnectionStrings["Database1ConnectionString"].ConnectionString; 

    // connection object 
    SqlCeConnection myConn = new SqlCeConnection(conString); 

    // create adapter 
    SqlCeDataAdapter myAdapter = new SqlCeDataAdapter("select * from [Sent]", myConn); 

    // create command builder 
    SqlCeCommandBuilder myCommandBuilder = new SqlCeCommandBuilder(myAdapter); 

    // create dataset 
    DataSet myDataSet = new DataSet(); 

    // fill dataset into named table 
    myAdapter.Fill(myDataSet, "Sent"); 

    // create new row 
    DataRow newRow = myDataSet.Tables["Sent"].NewRow(); 

    // set field vals 
    newRow["sendTo"] = sendTo; 
    newRow["subject"] = subject; 
    newRow["message"] = message; 

    // add new row to table 
    myDataSet.Tables["Sent"].Rows.Add(newRow); 

    // update database 
    myAdapter.UpdateCommand = myCommandBuilder.GetUpdateCommand(); 
    int updatedRows = myAdapter.Update(myDataSet, "Sent"); 
    //MessageBox.Show("There were "+updatedRows.ToString()+" updated rows"); 

    // close connection 
    myConn.Close(); 
1

Прежде всего: проверить строку соединения ошибка прямо говорит вам: «Эй, я не может подключиться к вашей базе данных "

Второй: select * from Sent(без апострофов)

+0

Не имеет никакого отношения к сообщению об ошибке, хотя вы правы с этим. – usr

+0

Я просто пытаюсь подключиться к локальной базе данных. Вот мой app.config: Я не знаю, какая будет правильная строка подключения, возможно, вы можете мне рассказать. Моя база данных просто находится в том же каталоге, что и проект, в C: \ Documents and Settings \ Administrator \ My Documents \ Visual Studio 2010 \ Projects \ TestingApp \ TestingApp \ Database1.sdf (также в папке \ bin). – user1477388

+0

Я обновил вопрос с помощью правильного кода. – user1477388

0

Может быть констатирую очевидное здесь, но вы проверили, что служба SqlExpress работает?

https://stackoverflow.com/a/4650231/1095373

+0

Нет, мне просто нужно было исправить свой код. Я обновил его в своем ответе. – user1477388

1

Вы поменяли пароль, который вы используете на машине, на которой установлен SQL-сервер? Я испытал это раньше, и я сделал, чтобы отобразить мой новый пароль для конфигурации SQL Server, а затем перезапустить службу.

Также убедитесь, что параметр TCP/IP включен в настройках конфигурации SQL.