我创建了一个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一起工作,我还需要做一些其他的配置吗?
我有两个DataBase表(SQL CE).甲教师表和甲类表.这两个表具有一对多关系,其中一个教师具有许多类(即,类具有外键teacher_id).在运行时通过C#代码插入(或生成)教师(行)的数量,以及类
在INSERT和SELECT中,以下哪一项更快?
好的,这是我的问题:我为某人开发了一个.NET 4.0(客户端配置文件)+ SQL Server Compact应用程序,并且有人报告了以下问题:该应用程序根本无法启动。没有错误,没有异常,没有消息,什么都没有。加载光标显示5秒钟,然后什么也没有发生。该应用程序也不会显示在进程树中。
这不是我为他开发的第一个.NET应用程序,因此我100%确信所有必需的软件都已安装在他的计算机上(.NET 4.0 CP)。我已经请他为他安装SQL Server Compact 4.0的运行时,所以我认为问题不出在这里。
我尝试过仅使用UI初始化发送构建(主窗体的构造函数/加载方法中没有其他内容)。它有同样的问题。
我不知道在哪里寻找问题的根源。在座的任何人都可以帮我一些提示,为我指明正确的方向吗?我的猜测是该应用程序在这5秒钟内“尝试”启动,但失败了。
如果您需要更多信息,请询问。
我正在开发一个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) decimal 是一种.NET(也是其他框架,rdbms和语言)值类型,用于存储具有小数精度的浮点数,而不是二进制数.
有没有办法将这些值保存到SQL CE数据库而不使用过程中的二进制精度?
我正在编写一个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) 我正在尝试以实用方式创建表,我的代码生成以下语法:
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) 我有我在数据库查询(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) 问题是我正在尝试写入一个名为的表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#应用程序 - SQL-Server和本地SQL-Compact数据库.
插入一些东西时我想要取回插入的ID,这是一个uniqueidentifier.
ExecuteScalar()不起作用uniqueidentifier.只有在使用时output inserted.id.
但是output inserted.idSQL-Compact不支持.
有没有办法uniqueidentifier在两个数据库中找回?
sql-server-ce ×10
c# ×8
sql ×3
.net ×2
database ×2
sql-server ×2
decimal ×1
linq-to-sql ×1
sqlexception ×1
using ×1