2009-05-05 4 views
0

Я начинаю работать в SQL. У меня проблема с ним. Прежде всего я SHD пусть и знаю, что я установил SQL 2005 Server, н затем сделал ConsoleApp и остальная часть кода находится под:Проблема с базовым SQL-материалом

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Data.SqlClient; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      SqlConnection myConnection = new SqlConnection("user id=userid;" + 
             "Password=validpassword;" + 
             "Trusted_Connection=yes;" + 
             "Data Source=localhost;" + 
             "connection timeout=300"); 



      try 
      { 
       myConnection.Open(); 
      } 
      catch (Exception e) 
      { 
       Console.WriteLine(e.ToString()); 
      } 


      SqlCommand myCommand = new SqlCommand("INSERT INTO table (Column1, Column2) " + 
             "Values ('string', 1)", myConnection); 

      myCommand.ExecuteNonQuery(); 



     } 
    } 
} 

когда я запускаю его ... Я получаю необработанное исключение типа «System .Data.SqlClient.SqlException 'произошел в System.Data.dll с myCommand.ExecuteNonQuery();

Kidnly наставит меня, где я собираюсь wrong.I просто хочу сделать простой stuff.Insert что-то п, то прочитать it.But я получаю ошибку даже при вставке.

+0

Открывает ли соединение нормально? –

+0

Стол уже создан? –

ответ

0

Существует либо проблема с подключением к database- неправильного имени пользователя, паролю и/или серверу, или таблице и столбцам не существует. Я бы поставил точку останова в выводе catch и посмотрел на исключение, чтобы узнать больше.

6

Вы не используете базу данных. Задайте запрос начального каталога в строке подключения к базе данных, в которой находится таблица «Таблица». Или, INSERT INTO dbName..table VALUES ...

Также зарегистрируйтесь ConnectionStrings.com. Учите его, используйте, любите.

+0

Превосходный улов! Нет «Initial Catalog =" или «database =» в строке соединения - где же эта «таблица» существует? :-) –

3

В вашем соединении отсутствует параметр Initial Catalog. Он должен быть «Initial Catalog = DatabaseName». Также, если вы используете Trusted Connection, вам не нужны параметры идентификатора пользователя и пароля.

2

Запустите мое перемещение обработки исключений, чтобы содержать ExecuteNonQuery, а затем отредактируйте свой вопрос с полным исключением.

 static void Main(string[] args) 
     { 
      SqlConnection myConnection = new SqlConnection("user id=userid;" + 
             "Password=validpassword;" + 
             "Trusted_Connection=yes;" + 
             "Data Source=localhost;" + 
             "connection timeout=300"); 


      try 
      { 
       myConnection.Open(); 

       SqlCommand myCommand = new SqlCommand("INSERT INTO table (Column1, Column2) " + 
             "Values ('string', 1)", myConnection); 
       myCommand.ExecuteNonQuery();  
      } 
      catch (Exception e) 
      { 
       Console.WriteLine(e.ToString()); 
      } 
     } 
+0

Возможно, также использовать инструкцию Using? –

0

Если вы перехватить исключение, или отладить приложение консоли, так что вы можете увидеть детали исключения, вы должны быть в состоянии узнать полную информацию об ошибке, изучив послание, за исключением, или внутреннее исключение.

Как уже упоминалось Чад, это может быть просто проблема именования, где таблицы или столбцы, указанные в запросе, не существует в базе данных вы указали на. В качестве альтернативы может возникнуть проблема с типом данных, которые вы пытаетесь интерпретировать. Сообщение сервера БД, которое возвращается к исключению, позволит вам узнать больше.

1

Когда вы установили SQL Server 2005, вы поместили его в смешанный режим? Для этого вам нужно будет ввести имя пользователя и пароль. Я не уверен, что .NET будет делать с именем пользователя/паролем и доверенным соединением = true в строке подключения. Вы получаете открытую связь?

Вам также потребуется имя базы данных в строке подключения.

Я не могу добавить комет на ваше сообщение, поэтому я добавлю его здесь. Вам нужно запустить SQL Server Management Studio, чтобы получить доступ к вашей базе данных и будущим таблицам. Затем перейдите к помощи и начните читать книги в Интернете о том, как создавать таблицы.

+0

Спасибо, что я это сделал – 2009-05-05 18:27:51

Смежные вопросы