是否可以执行从sql ce数据库中删除所有表的命令?
感谢帮助
我想从旧的asp-classic网站连接到SQL Server Compact Edition 4.0,但我总是得到错误:
"Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified. "
我试过了
sCon = "Data Source=c:\temp\sqlcompact.sdf;Encrypt Database=True;Password=testtest;Persist Security Info=False;"
Run Code Online (Sandbox Code Playgroud)
和
更新:错误:多步OLE DB操作生成错误.检查每个OLE DB状态值(如果可用).没有工作
sCon = "Provider=Microsoft.SQLSERVER.CE.OLEDB.4.0;Data Source=c:\temp\sqlcompact.sdf;Password=testtest;"
Run Code Online (Sandbox Code Playgroud)
没有任何成功.
通常可以从ADO连接到SQL Server CE 4.0吗?
更新:示例代码打开连接:
dim sCon
dim gCON : set gCON=CreateObject ("ADODB.Connection")
sCon = "Provider=Microsoft.SQLSERVER.CE.OLEDB.4.0;Data Source=c:\temp\sqlcompact.sdf;Pwd=testtest;"
gCon.ConnectionString = sCon
gCon.Open
gCon.Close
Run Code Online (Sandbox Code Playgroud) connection-string ado asp-classic sql-server-ce sql-server-ce-4
我已经检查了这个问题,它似乎与我需要的东西有关,但并没有完全回答.
我有一个实体(Sql Compact使用EF Code First通过MVC3-如果标题不清楚的话)"问题"(通用问题跟踪,只是为了我自己的教育理解MVC3如何工作).Issue类具有CreatedBy属性(对创建问题的用户的Int引用)和CreatedDate属性(DateTime).当我使用scaffolded代码进行更新时(仅修改以防止某些更新的日期字段被用户修改):
if (ModelState.IsValid)
{
issue.LastActivity = (DateTime?)DateTime.Now.Date;
if (issue.ClosedBy != null) issue.ClosedDate = (DateTime?)DateTime.Now.Date;
startingIssue = null;
db.Entry(issue).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)
我收到链接问题中提到的错误(将datetime2数据类型转换为日期时间数据类型等等)
当我单步执行代码时,看起来我的CreatedBy和CreatedDate属性不包含在issue控制器传递的实例中.当我尝试通过从数据库中获取问题的另一个副本并将其更新为值来解决此问题时:
var startingIssue = db.Issues.Find(issue.IssueId);
if (ModelState.IsValid)
{
if (issue.CreatedBy != startingIssue.CreatedBy) issue.CreatedBy = startingIssue.CreatedBy;
if (issue.CreatedDate != startingIssue.CreatedDate) issue.CreatedDate = startingIssue.CreatedDate;
issue.LastActivity = (DateTime?)DateTime.Now.Date;
if (issue.ClosedBy != null) issue.ClosedDate = (DateTime?)DateTime.Now.Date;
startingIssue = null;
db.Entry(issue).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)
我得到并发冲突:ObjectStateManager中已存在具有相同密钥的对象.ObjectStateManager无法使用相同的键跟踪多个对象.
那么,如何在不违反并发性的情况下让EF查看已在DB中设置的日期(因此它不会尝试将CreatedDate更新为1/1/0001)?
编辑
好的......我找到了.显然,我正在寻找@Html.HiddenFor(model …
我创建了像服务器浏览器/数据连接/添加连接的数据库.Microsoft SQL Server Compact 3.5(.NET Framework)使用创建并创建自己的MyDatabes.sdf文件.
现在在服务器浏览器中右键单击我的databese ---并单击新查询
.
试试这个:
Create table [student]
(
[student_id] Bigint NOT NULL,
[bornnumber] Varchar(10) NOT NULL,
[branch] Integer NOT NULL,
[specialization] Integer NOT NULL,
[year] Smallint NULL,
[studygroup] Varchar(5) NOT NULL,
[started] Datetime NULL,
[finished] Datetime NULL,
[status] Char(1) NULL,
Primary Key ([student_id])
)
Run Code Online (Sandbox Code Playgroud)
按执行查询:
它显示表查询定义不同的是写的
"不支持CREATE TABLE SQL构造或语句."
点击即可
显示SQL Executation错误
"错误源:SQL Server Compact ADO.NET数据PRovider错误消息:指定的数据类型无效.[数据类型(如果已知)= Varchar]";
我希望查询很好......我希望ADO,NET知道Varchar.请问你知道有问题吗?
使用Visual …
我有一个mdf文件,它是SQL Server 2008文件.我想将其转换为SQL Server Express或SQL Compact版本.
有没有转换它的工具?
using (var db = new dbEntities())
{
var dbUser = (from u in db.Users
where u.Id == Id
select u).First();
dbUser.LastName = LastName;
dbUser.FirstName = FirstName;
dbUser.GroupId = GroupId;
dbUser.VoicesCount = VoicesCount;
db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
这不会保存对数据库的任何更改.但也没有例外.为什么?
UPD:好的,我也尝试过SQL Server CE而且没有任何变化.它不保存更改的数据.
我们正在使用SQL Server 2008 R2作为后端在C#4中开发一个应用程序.在极少数情况下,SQL Server Compact 4也用于断开连接的客户端.我们想知道将日期/时间数据存储到这些数据库中的最佳方法是什么,以便:
我们主要关注的是保留每个记录事件的本地时间,但不会失去比较和排序从不同时区生成的事件的能力,因此具有不同的时间偏移.
我们已经考虑了datetimeoffset数据类型,因为它存储时间偏移,因为它很好地映射到.NET DateTimeOffset.但是,SQL Server Compact 4不支持它.另一种方法是从数据库中删除偏移信息并使用简单的datetime数据类型,以便数据库中的每个数据都被标准化,并且Compact的问题更少.然而,这引入了在用户看到数据之前需要以某种方式重建偏移信息的问题.
所以我的问题是,是否有关于如何在SQL Server中存储日期/时间值的最佳实践或指南,考虑到我们需要处理不同的时区,并使2008 R2和Compact 4之间的互操作性变得简单尽可能?
谢谢.
伙计们!MsSql Compact具有在两列或更多列上创建复合唯一索引(只是约束,而不是主键)的功能?
col 1 col2 1 2 1 2 - 插入/更新必须生成异常
我没有通过Server Explorer的设计器看到此功能
我正在尝试创建一个数据库应用程序.我从中添加了本地数据库
add > new item > local database.sdf
Run Code Online (Sandbox Code Playgroud)
在Server Explorer中,我在数据库中创建了一个表.但我无法连接它.
我想在DataGrid中显示所有数据.
我的代码:
string ConnectionString = @"Data Source=""c:\users\asus\documents\visual studio 2012\Projects\WpfApplicationLocalDB\WpfApplicationLocalDB\LocalDB.sdf""";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Student", conn);
DataTable dt = new DataTable();
da.Fill(dt);
conn.Close();
List<DataRow> lis = dt.AsEnumerable().ToList();
DataGridView.ItemsSource = lis;
Run Code Online (Sandbox Code Playgroud)
但是当我构建它时,Visual Studio会发现conn.open();错误.一条消息说
用户未处理SqlException
请帮忙...
此外,任何人都可以建议如何在C#中创建一个简单的数据库应用程序的教程?请帮忙.
我知道有一种方法可以在常规的Sql Server中执行此操作,如果我没有弄错,它看起来像这样:
SELECT UNIX_TIMESTAMP(ba_trans_entered) * 1000 AS 'dateUTC'
Run Code Online (Sandbox Code Playgroud)
然而,我承认,我没有得到这个* 1000部分,但这不是重点.
当我尝试在SQL Server CE中执行此查询时,它只是告诉我(即,WebMatrix告诉我):
'UNIX_TIMESTAMP' is not a recognized built-in function name.
Run Code Online (Sandbox Code Playgroud)
我假设UNIX_TIMESTAMPSql Server Compact不支持.
此外,我尝试使用Google搜索并在SE上搜索,但没有与SQL Server CE相关的数据显示,因此在给定的环境中可能没有办法.
有没有办法将'datetime'(例如:)转换7/13/2007 12:00:00 AM为时间戳(例如:) 1184302800000?我知道我可以在JavaScript中执行此操作,但我被告知在查询本身中执行此操作可能会更快,因为我正在提取大量数据...
sql-server-ce ×10
c# ×3
sql ×2
.net ×1
ado ×1
asp-classic ×1
asp.net ×1
datetime ×1
sql-server ×1
sqlite ×1
timestamp ×1
timezone ×1
webmatrix ×1
wpf ×1