Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server Express edition-只读数据库?_Sql Server_Database_Sql Server 2008 - Fatal编程技术网

Sql server SQL Server Express edition-只读数据库?

Sql server SQL Server Express edition-只读数据库?,sql-server,database,sql-server-2008,Sql Server,Database,Sql Server 2008,我有一个非常奇怪的问题,我有一个新安装的SQL Server 2008快速版是的,它现在有点旧,但无论如何。当我通过SQL Server Management Studio连接时,我可以读取和编辑数据更新或插入,但当我通过web应用程序的数据访问层(使用SqlConnection和SqlCommand尝试更新和插入表中的数据)连接时,数据库中不会发生任何更改。奇怪的是,代码运行时好像没有发生错误;不会引发异常,并且我的update语句会导致SqlCommand.ExecuteNonQuery返回

我有一个非常奇怪的问题,我有一个新安装的SQL Server 2008快速版是的,它现在有点旧,但无论如何。当我通过SQL Server Management Studio连接时,我可以读取和编辑数据更新或插入,但当我通过web应用程序的数据访问层(使用SqlConnection和SqlCommand尝试更新和插入表中的数据)连接时,数据库中不会发生任何更改。奇怪的是,代码运行时好像没有发生错误;不会引发异常,并且我的update语句会导致SqlCommand.ExecuteNonQuery返回1,表示假定有1行已更新。然而,事实并非如此。但是,应用程序可以通过select语句从数据库中读取数据

有人知道这里发生了什么吗?我甚至尝试使用跟踪SQL Server,其输出似乎表明应该进行更新:

exec sp_executesql N'UPDATE Match SET TicketsSold=@ticketsSold WHERE MatchId=@matchId',N'@matchId int,@ticketsSold int',@matchId=1,@ticketsSold=1234
go
然而,TicketsSeld保持与以前相同的值123,并且不会更新为1234。是否存在SQL Server 2008 Express可能运行的某种静默只读模式?我不明白为什么数据库没有更新


顺便说一下,这是我在SSMS中创建的一个正确的SQL Server数据库,而不是与我的web应用程序位于同一目录中的一些附加MDF文件。在数据库选项中,数据库没有设置为只读,并且我非常确定web应用程序登录的用户对MDF文件具有读/写权限;它与我使用SSMS登录的用户是同一个用户-具有集成的Windows安全性-并且我能够通过SSMS更新/插入该用户。

感谢评论中的shf301-我正在创建事务,但忘记调用。在使用块结束之前提交。:-D我把它放进去了,现在它开始工作了。

你能举一个select语句的例子,你用它来选择TicketsSeld仍然是123的记录吗?听起来你有一笔交易没有提交。您的代码是否正在创建SqlTransaction而不调用Commit?