none
Ошибка при подключении к базе данных в C# RRS feed

  • Вопрос

  • Не получается подключить, выскакивает такая ошибка:

    Не удалось прикрепить базу данных, которой автоматически было присвоено имя, к файлу D:\A_Work\БД\L6\Institut_Kokc.
    База данных с таким именем уже существует, указанный файл нельзя открыть, или он находится на общем ресурсе UNC.

    Код:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    
    namespace DB
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                SqlConnectionStringBuilder bldr = new SqlConnectionStringBuilder();
                bldr.DataSource = @".\SQLExpress";
                bldr.IntegratedSecurity = true;
                bldr.AttachDBFilename = @"D:\A_Work\БД\L6\Institut_Kokc";
                using (SqlConnection cn = new SqlConnection(bldr.ConnectionString))
                {
                    try
                    {
                        cn.Open();
                        MessageBox.Show("База данных подключена!");
                    }
                    catch(SqlException ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
        }
    }
    


    15 ноября 2012 г. 11:04

Ответы

Все ответы

  • Первое, что бросается в глаза, что вы не указали расширение при использовании AttachDBFilename.

    Посмотрите на MSDN'е пример использования AttachDBFilename.
    • Изменено ulcerModerator 15 ноября 2012 г. 12:54
    • Предложено в качестве ответа Naomi N 20 ноября 2012 г. 2:11
    • Помечено в качестве ответа Abolmasov Dmitry 23 ноября 2012 г. 12:46
    15 ноября 2012 г. 12:53
    Модератор
  • Спасибо.

    Я написал расширение.

    Появляется ошибка, говорящая, что БД версии 661, а данный сервер поддерживает версию 655 и более ранние.

    может из-за этой строки?

    bldr.DataSource = @".\SQLExpress";

    Я базу писал в полной версии SQL Server 2008 R2. Просто нам дали лабораторную, а том Express.

    Что надо написать вместо  SQLExpress?

     

    15 ноября 2012 г. 19:35
  • ConnectionStrings.com хороший сайт, посмотри варианты.
    16 ноября 2012 г. 5:07
    Модератор
  • Спасибо.

    Я написал расширение.

    Появляется ошибка, говорящая, что БД версии 661, а данный сервер поддерживает версию 655 и более ранние.

    может из-за этой строки?

    bldr.DataSource = @".\SQLExpress";

    Я базу писал в полной версии SQL Server 2008 R2. Просто нам дали лабораторную, а том Express.

    Что надо написать вместо  SQLExpress?

    у вас сколько инстансов установлено на компьтере?

    если ваш 2008Р2 является дефолтным, то достаточно: bldr.DataSource = @".";


    http://www.t-sql.ru

    16 ноября 2012 г. 6:38
    Модератор
  • If you're getting such error, it means your SQL Server is SQL 2008 and you try to attach SQL Server 2008 R2 database. You need to have the DB created in the same SQL Server version as your SQL Server Express. If your DB is in more current version, then you will not be able to attach it on an earlier version of SQL Server.

    For every expert, there is an equal and opposite expert. - Becker's Law


    My blog

    20 ноября 2012 г. 2:13
  • Все спасибо, уже всё работает!
    20 ноября 2012 г. 5:53