标签: sql-server-ce

Linq to SQL和SQL Server Compact Error:"解析查询时出错."

我创建了一个SQL服务器压缩数据库(MyDatabase.sdf),并用一些数据填充它.然后我运行SQLMetal.exe并生成一个linq到sql类(MyDatabase.mdf)

现在我试图从一个表中选择相对简单的选择的所有记录,我得到错误:

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

这是我的选择代码:

public IEnumerable<Item> ListItems()
{
    MyDatabase db_m = new MyDatabase("c:\mydatabase.sdf");
    return this.db_m.TestTable.Select(test => new Item()
        {
            ID = test.ID,
            Name = test.Name,
            RequestData = test.RequestData != null ? test.RequestData.ToString() : null,   
            Url = new System.Uri(test.Uri)
        }.AsEnumerable();
}
Run Code Online (Sandbox Code Playgroud)

我已经读过Linq to SQL与Sql Compact一起工作,我还需要做一些其他的配置吗?

sql-server-ce linq-to-sql

0
推荐指数
1
解决办法
1169
查看次数

在一个表中插入多行或者将行分别插入到多个表中?

我有两个DataBase表(SQL CE).甲教师表和甲表.这两个表具有一对多关系,其中一个教师具有许多类(即,具有外键teacher_id).在运行时通过C#代码插入(或生成)教师(行)的数量,以及类

在INSERT和SELECT中,以下哪一项更快?

  1. 每次新教师被插入时,都会创建一个新的班级表(例如Class_teacher001)来存储教师所具有的任何班级.在这种情况下,每个类表都不必太大,不需要外键,因为表名会标识自己.但是会有一个Teacher表和许多Class_xxx表

  2. 只有一个Teacher表和一个Class表.每个类行都有一个指向Teacher表的外键.只有一个Class表,但它会变得很长.我担心搜索和阅读会很慢

c# database sql-server-ce

0
推荐指数
1
解决办法
298
查看次数

.NET应用程序不想运行

好的,这是我的问题:我为某人开发了一个.NET 4.0(客户端配置文件)+ SQL Server Compact应用程序,并且有人报告了以下问题:该应用程序根本无法启动。没有错误,没有异常,没有消息,什么都没有。加载光标显示5秒钟,然后什么也没有发生。该应用程序也不会显示在进程树中。

这不是我为他开发的第一个.NET应用程序,因此我100%确信所有必需的软件都已安装在他的计算机上(.NET 4.0 CP)。我已经请他为他安装SQL Server Compact 4.0的运行时,所以我认为问题不出在这里。

我尝试过仅使用UI初始化发送构建(主窗体的构造函数/加载方法中没有其他内容)。它有同样的问题。

我不知道在哪里寻找问题的根源。在座的任何人都可以帮我一些提示,为我指明正确的方向吗?我的猜测是该应用程序在这5秒钟内“尝试”启动,但失败了。

如果您需要更多信息,请询问。

.net c# sql-server sql-server-ce

0
推荐指数
2
解决办法
1948
查看次数

C#SqlCeException - 缺少参数

我正在开发一个Windows Mobile 6应用程序.它正在访问SQL Server CE数据库,我收到以下错误:

缺少参数.[参数序数= 1]

我没有太多使用SQL Server CE,但使用SQL Server 2008的几乎相同的应用程序执行此代码没有任何问题.我无法弄清楚为什么它告诉我参数丢失了!

这是我的代码:

using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlServerCe;


namespace ElectricBarcodeApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void buttonStart_Click(object sender, EventArgs e)
        {
            System.Data.SqlServerCe.SqlCeConnection conn = new System.Data.SqlServerCe.SqlCeConnection(
            ("Data Source=" + (System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase), "ElectricReading.sdf") + ";Max Database Size=2047")));
            try
            {
                // Connect to the local database
                conn.Open();
                System.Data.SqlServerCe.SqlCeCommand cmd = conn.CreateCommand(); …
Run Code Online (Sandbox Code Playgroud)

c# sqlexception sql-server-ce

0
推荐指数
1
解决办法
1816
查看次数

如何在SQL Server Compact Edition中保存小数?

decimal 是一种.NET(也是其他框架,rdbms和语言)值类型,用于存储具有小数精度的浮点数,而不是二进制数.

有没有办法将这些值保存到SQL CE数据库而不使用过程中的二进制精度?

.net c# decimal sql-server-ce sql-server-ce-3.5

0
推荐指数
1
解决办法
5919
查看次数

在'Using'语句中选择@@ Identity

我正在编写一个Sql-Server-ce应用程序C#.

最近我一直在将我的代码转换为使用using语句,因为它们更清晰.在我的代码中,我有一个GetLastInsertedID非常简单的函数 - 它返回最后插入的ID.工作版本如下:

    public static int GetLastInsertedID()
    {
        int key = 0;
        try
        {
            SqlCeCommand cmd = new SqlCeCommand("SELECT CONVERT(int, @@IDENTITY)", DbConnection.ceConnection);
            key = (int)cmd.ExecuteScalar();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Could not get last inserted ID. " + ex.Message);
            key = 0;
        }
        return key;
    }
Run Code Online (Sandbox Code Playgroud)

下面的代码在我将它包装在using语句中后不起作用:

    public static int GetLastInsertedID()
    {
        int key = 0;
        try
        {
            using (SqlCeConnection conn = new SqlCeConnection(DbConnection.compact))
            {
                conn.Open();
                using (SqlCeCommand cmd …
Run Code Online (Sandbox Code Playgroud)

c# using sql-server-ce

0
推荐指数
1
解决办法
1792
查看次数

SqlCeCommand执行C#

我正在尝试以实用方式创建表,我的代码生成以下语法:

string x = "CREATE TABLE [test] ([ID] int NOT NULL,[Name] nvarchar(100) NOT NULL"
Run Code Online (Sandbox Code Playgroud)

但每次我尝试运行代码时,我都会生成以下异常.

我的代码:

   SQLCommand cmd = new SQLCommand(x,conn);
   cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

我得到的例外:

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

我正在使用,SqlCeConnection如果这有所作为,并SqlCeCommand执行.

我是否错误地创建了表格?

我的后端连接和执行如下所示:

public bool ExecuteSqlCommand(string sqlStr, IList<SqlCeParameter> parameters, SqlCeConnection conn)
{
   SqlCeCommand cmd = null;
   cmd = conn.CreateCommand();

   try
   {
      if (parameters != null)
      {
         foreach (SqlCeParameter param in parameters)
         {
             cmd.Parameters.Add(param);
         }
      }

      cmd.CommandText = sqlStr;

      int affectedRows = cmd.ExecuteNonQuery();

      bool DDLCommand = sqlStr.StartsWith("Drop ", StringComparison.OrdinalIgnoreCase);
      DDLCommand …
Run Code Online (Sandbox Code Playgroud)

c# sql sql-server-ce

0
推荐指数
2
解决办法
250
查看次数

从SQL更改为SQL-CE - 语法

我已经问过以下代码的问题:这是问题所在.

我有我在数据库查询(SQL Server)中使用的以下sql语法.

MERGE INTO table_with_team_and_goals AS target
USING (SELECT Team, SUM(headergoal + freekickgoal) AS goals FROM table_with_goals GROUP BY team) AS source
ON target.team=source.team
 WHEN MATCHED THEN 
        UPDATE SET goals = source.goals
    WHEN NOT MATCHED THEN   
        INSERT (Team, Goals)
        VALUES (source.team, source.goals);
Run Code Online (Sandbox Code Playgroud)

我现在正在改为sql-server-ce(精简版).我可以发现,SQL Server Compact不支持sql支持的一些命令.(像marge into)

如何更改代码,它适用于SQL Server Compact.

感谢您的帮助!BK

编辑:

表:table_player_goal_ratings - >包含以下数据:

 ID......Team...........Name......HeaderGoal......FreeKickGoal
 104     Barcelona      Mike      2               1
 105     Barcelona      Peter     0               0
 106     Real Madrid    Michael   0               2
 107     Real Madrid    Terry …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-ce

0
推荐指数
1
解决办法
414
查看次数

C#本地数据库更新错误

问题是我正在尝试写入一个名为的表Login.它有几列,有一个没有数据的列(null),我试图插入/更新列SuperSecretKey - nvarchar(100).

下面是代码:

public void InsertSecretKey(String SuperKey, int IDKey)
{
    conn = new SqlCeConnection(@"Data Source=|DataDirectory|\Database1.sdf");
    conn.Open();

    SqlCeCommand cmd = new SqlCeCommand();
    cmd.CommandText = "UPDATE Login SET SuperSecretKey = @SuperKey WHERE Key=@IDKEY;";
    cmd.Connection = conn;

    cmd.Parameters.AddWithValue("@SuperKey", SuperKey);
    cmd.Parameters.AddWithValue("@IDKey", IDKey);

    cmd.ExecuteNonQuery();
    conn.Close();
}
Run Code Online (Sandbox Code Playgroud)

这是错误:

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

有帮助吗?谢谢!

c# database runtime-error sql-server-ce

0
推荐指数
1
解决办法
85
查看次数

从插入的记录中获取uniqueidentifier

我开发了一个可以在两个数据库之间切换的C#应用​​程序 - SQL-Server和本地SQL-Compact数据库.

插入一些东西时我想要取回插入的ID,这是一个uniqueidentifier.

ExecuteScalar()不起作用uniqueidentifier.只有在使用时output inserted.id.

但是output inserted.idSQL-Compact不支持.

有没有办法uniqueidentifier在两个数据库中找回?

c# sql sql-server sql-server-ce

0
推荐指数
1
解决办法
96
查看次数