Uwakpeter Ответов: 1

Как привязать локальные записи БД к datagridview


У меня есть приложение C# windows с локальной базой данных (SQL server express). Я добавил SQL server express в каталог приложений, все работает нормально, я могу сохранить в базе данных, но я обнаружил, что есть копия базы данных в папке BIN, и именно там находятся мои сохраненные записи. Я пытаюсь привязать dataGridView для просмотра сохраненных записей, код выполняется без ошибок, но сетка не загружается данными, так как таблица набора данных является нулевой.

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

private void BindDataGridView()
{
    try
    {
        var select = "SELECT DISTINCT [Country],[State],[City] FROM dbo.StaffRecord ORDER BY [Country] ASC,[State] DESC";
        var c = new SqlConnection(connstring);
        var dataAdapter = new SqlDataAdapter(select, c);

        var ds = new DataSet();
        dataAdapter.Fill(ds);
        dataGridView1.ReadOnly = true;
        dataGridView1.DataSource = ds.Tables[0];

    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}


Моя строка подключения:

<add name="connection" connectionString = "Data Source=(localdb)\MSSQLLocalDB; Initial catalog=StaffRecord; Integrated Security=true;AttachDBFilename=|DataDirectory|\Database1.mdf;" providerName="System.Data.SqlClient" />


Пожалуйста, я не смогу привязать DataGridView к версии локальной БД в папке BIN, так как записи сохраняются там. Спасибо

1 Ответов

Рейтинг:
2

RickZeeland

Цитата:
Чтобы подключиться к определенной базе данных с помощью имени файла, подключитесь с помощью строки подключения, аналогичной Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf.

SQL Server Express LocalDB - SQL Server | Microsoft Docs[^]

Но будьте осторожны с именем AttachDBFileName:
Цитата:
Эта функция будет удалена в будущей версии Microsoft SQL Server. Избегайте использования этой функции в новых разработках и планируйте изменять приложения, которые в настоящее время используют эту функцию.

Более подробная информация здесь: Вредные привычки: использование AttachDBFileName[^]


Если вы не хотите, чтобы все эти головные боли были вызваны SQL Server, и ваши потребности просты, попробуйте LiteDB, видеть: лучшие-базы-для-небольшой-net-приложений~litedb[^]


Uwakpeter

Спасибо, Рикзиленд. Существует требование использовать базу данных SQL Server. И я обновил свой код с помощью строки подключения, которую я использую.