标签: sql-server-ce

如何使用"确定/取消"按钮为数据绑定WPF对话框设计支持数据类型?

我在Microsoft Sql CE中创建了一个表,用于保存一些数据.我已经通过SqlMetal生成了一个ORM,并且我将数据源拉入了我的WPF项目.

我想创建一个简单的WPF表单,可以通过ORM生成的类来编辑表中的记录.我希望这个表单支持典型的OK/Cancel语义.我已经在我认为是典型的时尚中创建了表单,在相应的字段上使用TwoWay数据绑定来绑定来自ORM的对象的实例.例如,给定ORM中具有属性"TaskName"的对象,我在WPF表单中包含以下内容:

<Label Grid.Column="0" Grid.Row="0" >
    Name:
</Label>
<TextBox Name="txtName" Grid.Column="1" Grid.Row="0" 
         Text="{Binding TaskName, Mode=TwoWay}" AcceptsReturn="False"
         MaxLines="1" />
Run Code Online (Sandbox Code Playgroud)

这与代码中的DataContext赋值相结合:

var newRow = new OrmGeneratedClass();
// Populate default values on newRow, e.g.    
detailWindow.DataContext = newRow;
detailWindow.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

可以合理地创建新行.通过表单进行的所有更改都会立即反映在底层的OrmGeneratedClass中.问题是,如果例如OrmGeneratedClass填充了先前保存的值,则不会立即支持取消更改.

对于这种情况,什么是好的设计,或者在我达到这一点之前我是否设计错了? 我是WPF和Sql Server数据源/ ORM集成方面的新手.(这是我用来学习这两种技术的个人项目.)

我有几个想法,并将他们放在答案中

data-binding wpf sql-server-ce linq-to-sql

3
推荐指数
1
解决办法
760
查看次数

为什么我不能将记录插入到我的SQL Compact 3.5数据库中?

我刚刚使用MSDN的文档制作了一个非常简单的测试应用程序.我想要做的就是在我的VS 2010应用程序的SQL Server Compact数据库中的表中插入一条记录.

但是当我运行它时,它表现得很好(没有错误),但是当我从服务器资源管理器中查看表数据时,记录永远不会插入到我的SQL Compact 3.5数据库中.

我的代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlServerCe;

namespace ConsoleApplication1
{
class Program
{
    static void Main(string[] args)
    {
        SqlCeConnection conn = null;

        try
        {
            conn = new SqlCeConnection("Data Source = test.sdf; Password ='pass'");
            conn.Open();
            SqlCeCommand cmd = conn.CreateCommand();
            cmd.CommandText = "INSERT INTO TEST ([test]) Values('NWIND')";

            cmd.ExecuteNonQuery();
        }
        finally
        {
            conn.Close();
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

}

我有一个名为test.sdf的数据库.它包含一个表"test",其中包含1列"test".

我的示例测试应用程序位于:http: //dl.dropbox.com/u/3051071/ConsoleApplication1.zip

我已经测试了我的test.sdf数据库的数据库连接,并且测试正常.

我无法想象为什么我无法在我的桌子中插入记录.每当我在执行后查看我的数据时,我的表中的值始终为null.

有人可以告诉我这里我做错了什么吗?

谢谢.

c# sql-server sql-server-ce

3
推荐指数
1
解决办法
5079
查看次数

SQL Server中"用户实例"的未来

以下关于"非管理员用户实例"的"SQL Server 2008 R2"页面顶部有一个注释,内容如下:

将在Microsoft SQL Server的未来版本中删除此功能.避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序.

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

这个功能的未来是什么?会完全放弃吗?取而代之的是另一个功能?SQL Server Compact版本是否意味着填补这个空间?

凹凸.没有人?有没有人使用用户实例功能?

sql-server-express sql-server-2008 sql-server-ce

3
推荐指数
1
解决办法
620
查看次数

连接字符串EF 4.1代码首先在Windows窗体应用程序中使用SQL compact

我创建了一个Windows窗体应用程序:

  1. 具有多个窗体的表示库
  2. 具有数据层的类库
  3. 用于访问数据库的类库

我正在使用EntityFramework 4.1与Code First Approach和SQL Compact 4.0数据库.

我在用于连接数据库的类库项目的app.config文件中创建了一个连接字符串.问题是连接字符串显然对数据库创建没有影响.我的意思是一切都与程序一起正常工作,但即使我指定了数据库的位置,这也没有任何效果!

我在正确的app.config中写作吗?我是否需要以特定方式初始化我的DbContext类?(今天我没有在构造函数中传递任何连接字符串)

DbContext类:

public class MyDB : DbContext
{
    public DbSet<ContactPerson> ContactPersons { get; set; }

    public DbSet<Customer> Customers { get; set; }

    public DbSet<Project> Projects { get; set; }

    public DbSet<Quotation> Quotations { get; set; }

    public MyDB()
    : base("MyDatabase")
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

App.config连接字符串:

<add name="MyDatabase" connectionString="Data Source=MyDB.sdf" 
providerName="System.Data.SqlServerCE.4.0">
Run Code Online (Sandbox Code Playgroud)

connection-string sql-server-ce ef-code-first entity-framework-4.1

3
推荐指数
1
解决办法
1万
查看次数

SQL Server Compact 4中的两个INNER JOINed表的UPDATE

我正在尝试更新sql server compact edition 4.0中两个表之间的值.我的sql如下:

UPDATE ei SET ei.EstateID=e.EstateID FROM EstateImages ei
    INNER JOIN Estates e ON e.TempKey=ei.TempKey
Run Code Online (Sandbox Code Playgroud)

还试过这个:

UPDATE EstateImages SET EstateID = 
    (SELECT EstateID FROM Estates WHERE TempKey = EstateImages.TempKey)
Run Code Online (Sandbox Code Playgroud)

我有错误:

There was an error parsing the query.
[ Token line number = 1, Token line offset = 37, Token error = SELECT ]
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-ce sql-server-ce-4

3
推荐指数
1
解决办法
4875
查看次数

无法在C#中连接到本地数据库

所以,我有以下代码用于连接记录并将其插入数据库:

string dbfile = "|DataDirectory|\\Databases\\Database.sdf";
            SqlConnection connection = new SqlConnection("Data Source=" + dbfile);
            SqlCommand query = new SqlCommand("insert into Leggers values('" + leggernummer + "','" + omschrijving + "')", connection);
            ** connection.Open(); **
            query.BeginExecuteNonQuery();

            connection.Close();
Run Code Online (Sandbox Code Playgroud)

我的配置文件如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="connectionstring"
            connectionString="Data Source=|DataDirectory|\Databases\Database.sdf"
            providerName="Microsoft.SqlServerCe.Client.3.5" />
    </connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

然后它在第一个代码块中**和**之间的部分给出错误

错误是:

System.Data.SqlClient.SqlException was unhandled
  Message=A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify …
Run Code Online (Sandbox Code Playgroud)

c# ado.net sql-server-ce visual-studio

3
推荐指数
1
解决办法
5128
查看次数

SQL Server CE - ROW_NUMBER

我不知道这段代码有什么问题,它现在给我一天的错误:

select row_number() over(order by s.title) as rowNumber, s.id 
from story as s
Run Code Online (Sandbox Code Playgroud)

表定义:

id       bigint
title    nvarchar(100)
content  ntext
Run Code Online (Sandbox Code Playgroud)

数据库:SQL Server Compact 4.0.8482.1

错误:

解析查询时出错.[令牌行号= 1,令牌行偏移= 22,令牌错误=超过]

我怎么做的:

我在这里搜索了同样的问题,但解决方案不适用于我的,我需要row_number功能如此糟糕.

sql-server-ce

3
推荐指数
1
解决办法
5743
查看次数

Sql CE与多个语句不一致

您可以使用SQL CE执行多个语句,这一直是事实.事实上,我正在使用SQL Server Compact Toolbox来做到这一点.但是,当我采用相同的多语句命令并从Dapper执行它们时......

public const string SampleDml = @"
   INSERT INTO [Plugin](Name, TypeName) VALUES ('Blog','Shroom.Blog');
   GO
   INSERT INTO [ContentDef](PluginID, Name, Placement, IsStatic) VALUES(@@IDENTITY,'MyBlog','Layout:Left',1);
   GO
";
Run Code Online (Sandbox Code Playgroud)

然后我不断收到此错误:

解析查询时出错.[令牌行号= 3,令牌行偏移= 1,令牌错误= GO]

我正在使用的SQL CE库的版本是版本4.0.0.0(运行时版本v2.0.50727).我正在使用Dapper 1.12.0.0(运行时版本v4.0.30319)和Dapper Extensions 1.3.2.0(运行时版本v4.0.30319).

SQL CE库看起来像是错误的运行时,但是Web平台安装程序说我有最新的(所以这真的是最新的?).思考?

sql-server-ce dapper

3
推荐指数
1
解决办法
2515
查看次数

System.FormatException:@name:as - 输入字符串的格式不正确

我正在使用C#VS 2010开发一个应用程序.

我正在使用CE数据库.我从数据库中搜索字符串的代码是

string con = @"Data Source=|DataDirectory|\Database\Acadamy.sdf;Persist Security Info=False";
string cmd = "SELECT  sid AS [Student ID], sname AS [Student Name], contact AS [Contact No] FROM Student WHERE sname LIKE '%'+ @name +'%'";
var dt = new DataTable();
using (var a = new SqlCeDataAdapter())
{
 try
  {
   a.SelectCommand = new SqlCeCommand();
   a.SelectCommand.Connection = new SqlCeConnection(con);
   a.SelectCommand.CommandType = CommandType.Text;
   a.SelectCommand.CommandText = cmd;
   a.SelectCommand.Parameters.AddWithValue("@name", textBox1.Text);
   a.Fill(dt);
   dataGridView1.DataSource = dt;
  }
  catch (Exception ex)
   {
    MessageBox.Show(ex.Message);
   }
}
Run Code Online (Sandbox Code Playgroud)

当我输入任何字符串时,as我收到错误System.FormatException: …

c# sql-server-ce

3
推荐指数
1
解决办法
512
查看次数

此名称的SqlCeParameter已包含在此SqlCeParameterCollection中.错误

在这段代码中,我有一个按钮点击事件.每当我第一次点击按钮时,代码都能正常工作.但是,如果我在其他时间单击该按钮则会抛出错误.

我的代码是

private void button2_Click(object sender, EventArgs e)
{
    string itemname = comboBox1.SelectedItem.ToString();

    con.Open();

    command.CommandText = "DELETE FROM pricedata WHERE Item=@item";
    command.Connection = con;
    command.Parameters.AddWithValue("@item", itemname);

    command.ExecuteNonQuery();                
    con.Close();
}
Run Code Online (Sandbox Code Playgroud)

c# sql-server-ce

3
推荐指数
1
解决办法
683
查看次数