Проблема с основными вещами SQL - PullRequest
0 голосов
/ 05 мая 2009

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

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 ();

Пошлите меня с ошибкой. Я просто хочу сделать что-то простое. Вставьте что-нибудь и прочитайте. Но я получаю ошибку даже при вставке.

Ответы [ 6 ]

6 голосов
/ 05 мая 2009

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

Кроме того, проверьте ConnectionStrings.com . Изучи это, используй это, люби это.

3 голосов
/ 05 мая 2009

В вашем соединении отсутствует параметр Начальный каталог. Это должно быть "Initial Catalog = DatabaseName". Также, если вы используете Trusted Connection, вам не нужны идентификатор пользователя и параметры пароля.

2 голосов
/ 05 мая 2009

Начните с того, что я перевожу вашу обработку исключений, чтобы она содержала 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());
            }
        }
1 голос
/ 05 мая 2009

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

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

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

0 голосов
/ 05 мая 2009

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

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

0 голосов
/ 05 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...