Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Задать ConnectionString в AdoDbxConnection

приветствую народ!

Пользуюсь с Delphi 2007.net создаю веб проект на ASP.NET, там есть компонент TAdoDbxConnection1, но для подключения требует ConnectionString, пытаюсь использовать обычный стандартный microsoft ConnectionString выходит ошибка, скорее всего из-за ConnectionString

TAdoDbxConnection1  :=  Borland.Data.AdoDbxClientProvider.TAdoDbxConnection.Create;
TAdoDbxConnection1.ConnectionString := 'Data Source=.;Initial Catalog=TEST;Persist Security Info=True;User ID=sa';
TAdoDbxConnection1.Open;



Помогите пожалуйста!
Ответ:
Gator
Askat,

Про ConnectionString тебе поможет
____________
A Delphi 2007.net в природе не существует.

Спс за
Вопрос: Ругается на динамический ConnectionString

// строка подключения
public static string ConnectionString 
        {
            get 
            {
                EntityConnectionStringBuilder csb = new EntityConnectionStringBuilder();
                csb.ProviderConnectionString = "Data Source=msqlSer;Initial Catalog=testDB;User Id=TestUser;Password=1;Integrated Security=False;MultipleActiveResultSets=True;App=EntityFramework";
                csb.Provider = "System.Data.SqlClient";
                
                return csb.ToString();
            }
        }
// конструктор контекста
 public PeoplesContext()
            : base(ConnectionString)
        {
        }



An unhandled exception of type 'System.ArgumentException' occurred in System.Data.dll

Additional information: Keyword not supported: 'provider'.
Ответ: Прокатило вот так
public static string ConnectionString 
        {
            get 
            {
                SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
                builder.DataSource = "msqlSer";
                builder.InitialCatalog = "testDB";
                builder.UserID = "TestUser";
                builder.Password = "1";
                builder.MultipleActiveResultSets = true;
                builder.PersistSecurityInfo = true;    
                return builder.ConnectionString.ToString();
        }
Вопрос: EntityFramework не находит ConnectionString в Аpp.congig

Делаю первые шаги в EntityFramework.
MVS 2013 Ultimate Edition SP 4
EntityFramework 6.1.3
Все, как по учебнику. Создаю шаблон из базы.
Делаю new Connection. Указываю имя SQL сервера и имя базы. Тест проходит.
Создается схема.
далее пишу две строки:

var context = new BackgroundSeContext();
var domains = context.Domain.ToList();

и на второй строке падаю с ошибкой:
No connection string named 'BackgroundSeContext' could be found in the application config file.
+
в System.Data.Entity.Internal.LazyInternalConnection.get_ConnectionHasModel()
в System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
в System.Data.Entity.Internal.InternalContext.Initialize()
в System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
в System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
в System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator()
в System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()

Смотрю в App.Config - всё на месте:
+
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
  <connectionStrings>
    <add name="BackgroundSeContext" connectionString="metadata=res://*/BackgroungSeModel.csdl|res://*/BackgroungSeModel.ssdl|res://*/BackgroungSeModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=ZALMAN;initial catalog=BALT_OBD_BackgroundSE;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;"
      providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>
Что можно попробывать сделать, чтобы заработало?
Ответ: Смысл простой.

dll будет записывать данные в базу. Подключать к своему проекту ее будут совсем другие люди, которые и знать не хотят о существовании EF и о всяких cоnnectionString'ах. Это внутренняя кухня самой dll. Внутри dll есть механизм, который позволяет знать, где она запущена и какой должен быть connectionString.
Вопрос: И снова ConnectionString

Всем доброго!
Прошу помощи у сообщества! Казалось бы тема избитая, но тем не менее... не всё так просто... И так вопрос:
Имею VS 2015 Comunity beta8 проект MVC6, необходимо подключиться к БД (это делается в файле appsettings.json) и это сложностей не вызывает, вот рабочий код
{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=(localdb)\\mssqllocaldb;Database=Base; Trusted_Connection=True;MultipleActiveResultSets=true"
    }
  }
}


При первом обращении к БД, создаётся файл по пути C:\Users\[Пользователь]\Base.mdf, а вот теперь вопрос, как сделать так, что бы БД падала в корневой каталог проекта?
Раньше, имею ввиду MVC5, всё делалось так, .

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\Base.mdf;Initial Integrated Security=True;" providerName="System.Data.SqlClient" />

Ключевым моментом здесь является AttachDbFilename, но как я не пытался данный метод прикрутить в своём проекте, всё бесполезно!

Заранее спасибо!
Ответ:
... ef 7 управляется в VS 15 из девелоперской командной строки (ее можно добавить в студию через меню Tools) командами DNX EF DATABASE, DBCONTEXT, MIGRATIONS

EF 6 создаёт БД при первом обращении к БД, что меня и ввело в заблуждение....
Вопрос: Ошибка: свойство ConnectionString не инициализировано

Помогите решить проблему. Выдает ошибку: свойство ConnectionString не инициализировано.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection connection = new SqlConnection();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = connection;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "Student_Select";
            connection.Open();
            SqlDataReader rdr = cmd.ExecuteReader();
            DataTable dt = new DataTable();
            for (int i = 0; i < rdr.FieldCount; i++)
            {
                dt.Columns.Add(new DataColumn(rdr.GetName(i), rdr.GetFieldType(i)));
            }
            while (rdr.Read())
            {
                DataRow row = dt.NewRow();
                for (int i = 0; i < rdr.FieldCount; i++)
                {
                    row[i] = rdr.GetValue(i);
                }
                dt.Rows.Add(row);
            }
            connection.Close();
            dataGridView1.DataSource = dt;
            dataGridView1.Columns[0].HeaderText = "Id";
            dataGridView1.Columns[1].HeaderText = "Last name";
            dataGridView1.Columns[2].HeaderText = "First name";
            dataGridView1.Columns[3].HeaderText = "Group name";
            dataGridView1.Columns[4].HeaderText = "Age";
            dataGridView1.Columns[5].HeaderText = "Sex";
        }
Ответ: Podorozhnik, прежде чем вызывать метод Open() для соединения нужно указать строку соединения (ConnectionString) о чем тебе и говорит ошибка.
Вопрос: Считывание ConnectionString из web.config

Я наверно сейчас задам глупый вопрос, только сильно не пинайте ;-)

Как мне в функции на C# считать connectionstring из web.config, чтобы постоянно не писать его вручную для каждого соединения с базой?

Данное сообщение получено с GotDotNet.Ru ()
Ответ:
Valery_B
Наверное есть какие то секретные знания
секретные знания были постом выше (разве что тире надо было бы поставить для понятности)

handmadeFromRu
веб сайт - web.config, консоль - app.config
Вопрос: Замена формулы в программе

Необходимо формулу из графика заменить на такую формулу , сам проект в архиве. Буду рад помощи
Ответ: Сама программа. Необходимо, чтоб она строила график не по первой формуле, а по второй
Вопрос: EntityFramework. CodeFirst. Как создать базу в папке программы

Создание новой пустой базы по этому шаблону


выдает ошибку:
'SqlException: Cannot open database "CodeFirst.Model1" requested by the login. The login failed.
Login failed for user 'WIN-839UNGGB30I\user'.

работает только если в конструкторе указать:
C#
1
Database.SetInitializer(new DropCreateDatabaseAlways<Model1>());
если записать
C#
1
Database.SetInitializer(new CreateDatabaseIfNotExists<Model1>());
то выдает ту же ошибку.

Если использовать connectionString, тогда создается, но в папке User\user\

Задача такая:
при запуске, если базы еще нет, то создать ее в папке программы и затем,
при повторных запусках использовать ее (из папки программы).

WPF.
Ответ:
Сообщение от kolorotur
Какая база используется?
Когда используется такая строка подключения, то база создается в папке c:\User\user:
XML
1
<add name="Model1" connectionString="data source=(LocalDb)\MSSQLLocalDB;initial catalog=PersonInfo; providerName="System.Data.SqlClient"/>

Когда такая строка (указан целевой файл), а самой базы еще нет, то выдает ошибку.
Если база уже есть по этому пути (|DataDirectory|\data\PersonInfo.mdf), то нормально.
XML
1
<add name="Model1" connectionString="data source=(LocalDb)\MSSQLLocalDB;initial catalog=PersonInfo;AttachDbFilename=|DataDirectory|\data\PersonInfo.mdf"  providerName="System.Data.SqlClient"/>

В общем-то можно сначала создать базу в user\user, потом скопировать в нужный каталог и указать в строке подключения путь, и все работает.

Проблема в том, как создать базу с нуля в нужном каталоге.
Вопрос: SQLite connectionString

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 string fn = "MyPass.html";
            StreamWriter Write = new StreamWriter(fn, false, Encoding.UTF8);
            string db_way = @"Login Data";
            string db_field = "stats";
            byte[] entropy = null;
            string description;
            DataTable DB = new DataTable();
            string sql = string.Format("SELECT * FROM {0} {1} {2}", db_field, "", "");
 
            byte[] s = File.ReadAllBytes(db_way);
 
            string connectionString = db_way;
            using (SQLiteConnection connect = new SQLiteConnection(connectionString))
            {
                SQLiteCommand command = new SQLiteCommand(sql, connect);
                SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
                adapter.Fill(DB);
            } 
            int rows = DB.Rows.Count;
            for(int i = 0; i < rows; i++)
            {
                Write.Write(i + 1 + ") ");
                Write.Write(DB.Rows[i][1] + "<br>");
                Write.Write(DB.Rows[i][3] + "<br>");
 
               // byte[] byteArray = (byte[])DB.Rows[i][5];
                //byte[] decrypted = DpapiDataProtector.Create
            }
Что такое connectionString не доконца разобрался с документацией, может кто подсказать ?
в итоге компиль выдает ошибку
"An unhandled exception of type 'System.ArgumentException' occurred in System.Data.SQLite.dll

Additional information: Invalid ConnectionString format for part "Login Data", no equal sign found"

Как исправить, кто сталкивался с таким?
Ответ: 1337trix, как говорится если ничего не помогает, то прочитай . Примеры строк соединения есть на сайте .
Вопрос: После публикации приложения и установки на другой пк программа не видит базу данных

После публикации приложения и установки на другой пк программа не видит базу данных Access, при чем в ошибке указан какой то сложный, не существующий путь к базе, по которому программа ее ищет. Подскажите как установить свой путь.
Ответ:
Сообщение от Tessio
тогда уберите вообще |DataDirectory| из пути. Приложение будет искать базу рядом с исполняемым файлом.
Убрал, при запуске ошибка "Не удается найти файл Тест.accdb"

Добавлено через 31 минуту
Вот код формы из которой заполняется база
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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.OleDb;
 
namespace WindowsFormsApplication2
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            OleDbConnection n = new OleDbConnection();
            n.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Тест.accdb";
            n.Open();
            OleDbCommand c = new OleDbCommand();
            c.Connection = n;
            c.CommandText = "INSERT INTO Таблица1([Имя]) values('" + textBox1.Text + "')";
            c.ExecuteNonQuery();
            n.Close();
            Form2 Form2 = new Form2();
            this.Close();
            MessageBox.Show("Запись добавлена");
        }
    }
}

Это код файла конфигурации
C#
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="WindowsFormsApplication2.Properties.Settings.ТестConnectionString"
            connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Тест.accdb"
            providerName="System.Data.OleDb" />
    </connectionStrings>
</configuration>

При отладке все замечательно работает, создаю файл EXE, ставлю на другой ПК, там не работает ни в какую, ищет базу не понятно где. Посмотрите что не так.

Добавлено через 5 минут
Прописывал директорию "C:\Users\Компьютер\Desktop" , это рабочий стол ПК на котором есть файл БД, устанавливал на этот ПК EXEшник, все работает, ставлю EXEшник на другой ПК, закидываю БД на рабочий стол, не работает, т.к. там адрес рабочего стола другой "C:\Users\Мой компьютер\Desktop".