SQL Server Compact Edition и VB / C#

#.net #ado.net #sql-server-ce

#.net #ado.net #sql-server-ce

Вопрос:

Может кто-нибудь предоставить четкий и простой пример того, как я могу открыть базу данных SSCE и запросить ее с помощью оператора SELECT? В конечном счете мне нужно будет сделать это в системе, которую я не контролирую, поэтому любой метод / поставщик, который я использую, должен быть доступен по умолчанию на стандартном компьютере с Windows.

Спасибо!

Ответ №1:

Пример кода здесь: http://erikej.blogspot.com/2010/07/getting-started-with-sql-server-compact.html и информация о частном развертывании здесь: http://erikej.blogspot.com/2011/02/using-sql-server-compact-40-with.html

Ответ №2:

Должно сработать следующее. вам нужно будет добавить ссылку на System.Data.SqlServerCe и создать для нее инструкцию using .

     string connectionString = "my connection string";
    string queryString = "select column from mytable where mycolumn = 'somevalue'";    
    using (var cnn = new SqlCeConnection(connectionString))
                        {
                            using (var cmd = new SqlCeCommand(queryString, cnn))
                            {
                                cnn.Open();

                                var da = new SqlCeDataAdapter(cmd);
                                var ds = new DataSet();
                                da.Fill(ds);

                            }
                        }
 

Вы также можете использовать cmd.Parameters.Add after you call cnn.Open(); для добавления параметров к вашему запросу.

Комментарии:

1. Я не показываю System.Data.SqlServerCe при попытке добавить ссылку на мой проект.

2. какую версию Visual Studio вы используете? установлен ли у вас sql server ce на компьютере разработчика?

3. Как обычно, это до смешного сложно. Я нашел DLL и добавил ссылку на нее. Когда я пытаюсь открыть соединение с базой данных, я получаю сообщение «невозможно загрузить собственные компоненты … бла-бла-бла». Я следовал инструкциям статьи KB и установил как 32, так и 64-разрядные версии SSCE (они уже были установлены до н.Э. установщик предлагал только восстановить или удалить), и ошибка остается.

4. вы используете 64-разрядную версию? если это так, эта статья может помочь — tech.avivo.si/2009/04/systemdatasqlserverce35-not-installed

5. Спасибо. Смотрите ответ, который я опубликовал 🙂

Ответ №3:

Для тех, кто борется с этим, посмотрите эту статью:

http://msdn.microsoft.com/en-us/library/aa983326.aspx

Тогда это так просто, как это:

 Imports System.Data.SqlServerCe

Public Class Form1

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Try

        Using conn As New SqlCeConnection
            conn.ConnectionString = "Data Source=c:Reporting.Database.sdf;Persist Security Info=False;"
            conn.Open()
            MsgBox("opened")
            conn.Close()
        End Using

    Catch ex As Exception
        MsgBox(ex.Message)

    End Try
End Sub
End Class