#.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