Member 11905879 Ответов: 1

C# - форматирование строки подключения локальной базы данных (файл. sdf)


Привет, я могу подключиться к своему локальному файлу БД .sdf непосредственно с помощью приложения winform, но не могу этого сделать, когда использую connstring. вот что я попробовал

1. использование файла app. config

var config =  ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings");
            connectionStringsSection.ConnectionStrings["DEVID"].ConnectionString = textBox6.Text;
            config.Save();
            ConfigurationManager.RefreshSection("connectionStrings");
            SqlCeConnection con = new SqlCeConnection();
            string DEVID = ConfigurationManager.ConnectionStrings["DEVID"].ConnectionString;
            con.ConnectionString = DEVID; // getting error as "object reference not set"
//SqlCeConnection con = new SqlCeConnection(DEVID); // in my app.config file i set my connection string = "Data Source=C:\Users\john\Documents\Visual Studio 2010\Projects\AECCS\AECCS\Database1.sdf


2. использование прямой строковой переменной

//SqlCeConnection con = new SqlCeConnection(@"Data Source=C:\Users\john\Documents\Visual Studio 2010\Projects\AECCS\AECCS\Database1.sdf"); // this is the actual conn string value
            string connstring1 = "\"Data Source=" + textBox6.Text + "\"";
            string connstring2 = "@"+connstring1;
            textBox2.Text = connstring2; // matches exactly with my actual connection string, but still not getting to connect with .sdf file
SqlCeConnection con = new SqlCeConnection(connstring2); // getting error as format of initialization string does not conform at index 0""


пожалуйста, помогите мне решить эту проблему

Что я уже пробовал:

//Соединение sqlceconnection кон = новое соединение sqlceconnection(@"источник данных=С:\Пользователи\документы Джон\\визуальная студия 2010\проекты\AECCS\AECCS\базы данных1.ФСР"); // это строковое значение Конн
строки connstring1 = "\"источник данных=" + textBox6.Текст + "\"";
строка connstring2 = "@ " +connstring1;
textBox2. Text = connstring2; // точно совпадает с моей фактической строкой подключения, но все еще не удается подключиться к файлу. sdf
SqlCeConnection con = new SqlCeConnection(connstring2); / / получение ошибки как " формат строки инициализации не соответствует индексу 0"

[no name]

Я думаю, что вам не хватает раздела провайдера connectionstring.

Member 11905879

извините мою ошибку, что я не упомянул об имени поставщика. вообще-то я имя_поставщика = система.Данных.SqlServerCe

1 Ответов

Рейтинг:
1

F-ES Sitecore

Вам не нужно "@" спереди,так что оставьте этот бит. @ Не является частью строки, это инструкция компилятору рассматривать все символы как литералы. Он используется при работе с путями, поэтому вам не нужно избегать символов"\".

SqlCeConnection con = new SqlCeConnection(connstring1);


Member 11905879

все еще получаю ту же ошибку, за исключением того, что теперь проблема находится в индексе 104 вместо индекса 0

F-ES Sitecore

Мы не знаем, что вы кладете в свое текстовое поле, поэтому вам просто нужно сравнить рабочие и нерабочие строки, где-то должна быть разница.