C#采用SQL server本地数据库,关闭窗体后,数据库为什么没有更新,建的表也不存在

C#采用SQL server本地数据库,关闭窗体后,数据库为什么没有更新,建的表也不存在,第1张

这个问题可能是因为没有正确地保存数据或未正确配置SQL Server本地数据库

首先,请确保在关闭窗体之前已经执行了保存数据的 *** 作,即将数据写入数据库。这通常是在用户单击“保存”或“提交”按钮时执行的。如果数据未被正确地保存,那么在关闭窗体时它将会丢失。

其次,请检查数据库连接字符串是否正确配置。在C#中,可以使用SystemDataSqlClient命名空间来连接到SQL Server数据库。如果连接字符串不正确,那么应用程序将无法连接到数据库,导致数据未被正确保存。

最后,请确保在创建数据库表时使用了正确的名称。如果表名不正确,那么在关闭窗体后,您可能会看不到所创建的表。您可以通过SQL Server Management Studio(SSMS)或其他类似的工具来检查数据库中是否存在所创建的表,并检查表名是否正确。

综上所述,建议您仔细检查保存数据的代码、连接字符串和表名是否正确,以确保数据被正确地保存到SQL Server本地数据库中。

Sql Server 数据库中的存储过程:

解析SQL存储过程:

存储过程(Stored Procedure),是一组为了完成特定功能的SQL 语句,类似一门程序设计语言,也包括了数据类型、流程控制、输入和输出和它自己的函数库。存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个 功能的时候调用他就行了。不过SQL存储过程对于一些初学者来说还是比较抽象难理解的,因此本文将由浅至深地剖析SQL存储过程,帮助你学习它。

存储过程的优点:

存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度,效率要比T-SQL语句高。

当对数据库进行复杂 *** 作时,可将此复杂 *** 作用存储过程封装起来与数据库提供的事务处理结合一起使用。

一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。

存储过程可以重复使用,可减少数据库开发人员的工作量。

安全性高,可设定只有某些用户才具有对指定存储过程的使用权

存储过程的缺点:

存储过程将给server带来额外的压力。

存储过程多多时维护比较困难。

移植性差。在升级到不同的数据库时比较困难。

调试麻烦。SQL语言的处理功能简单。

Sql Server 数据库中的自定义函数:

“自定义函数”是我们平常的说法,而“用户定义的函数”是 SQL Server 中书面的说法。

自定义函数分为:标量值函数或表值函数

如果 RETURNS 子句指定一种标量数据类型,则函数为标量值函数。可以使用多条 Transact-SQL 语句定义标量值函数。

如果 RETURNS 子句指定 TABLE,则函数为表值函数。

表值函数又可分为:内嵌表值函数(行内函数)或多语句函数

如果 RETURNS 子句指定的 TABLE 不附带列的列表,则该函数为内嵌表值函数。

如果 RETURNS 子句指定的 TABLE 类型带有列及其数据类型,则该函数是多语句表值函数。

自定义函数优点:

可以在SQL语句中调用,直接使用返回值,从而可以形成复杂的SQL应用。

自定义函数缺点:

能在函数中使用的语句有严格限制:

不支持create、ALTER、drop等DDL(Data Definition Language)命令;

insert、delete、update只能用在临时表上;

不支持动态SQL;

不支持“不确定”的函数,比如常用的getdate。不确定函数是指输入参数相同,返回结果可能不同的函数。

变通办法:

要解决用户函数的种种限制,可以巧妙运用用户函数调用存储过程。比如,需要在函数中用getdate,就写个存储过程返回getdate的结果。然后从函数里去调用这个存储过程。需要在函数中使用update等,也可类推。

白雨青工作站发文地址:>

一、启用FileTable

1、修改数据库引擎的属性

打开“SQL Server配置管理器”,修改SQL Server数据库引擎的属性。使用此页可针对此 Microsoft SQL Server 2012安装启用 FILESTREAM。

(1)针对 Transact-SQL 访问启用 FILESTREAM

选中此项可针对 Transact-SQL 访问启用 FILESTREAM。 必须选中此控制选项,才能使用其他控制选项。如果不启用此选项,就不能添加FileStream文件组。

(2)针对文件 I/O 流访问启用 FILESTREAM

选中此项可针对 FILESTREAM 启用 Win32 流访问。

(3)Windows 共享名

使用此控制选项可输入将用来存储 FILESTREAM 数据的 Windows 共享的名称。默认为该SQL Server实例的名称。

(4)允许远程客户端针对 FILESTREAM 数据启用流访问

选中此控制选项可允许远程客户端访问此服务器上的此 FILESTREAM 数据。

2、修改服务器的属性

打开“SQL Server Management Studio”,修改该实例的配置。默认配置如下:

上述选项解释如下:

(1)“FILESTREAM 访问级别”显示 SQL Server 实例上支持的 FILESTREAM 的当前级别。若要更改访问级别,请选择以下值之一:

已禁用

无法将二进制大型对象 (BLOB) 数据存储在文件系统中。此为默认值。即filestream access level=0

已启用 Transact-SQL 访问

可使用 Transact-SQL 访问 FILESTREAM 数据,但不能通过文件系统进行访问。即filestream access level=1

已启用完全访问

FILESTREAM 数据可使用 Transact-SQL 以及通过文件系统进行访问。即filestream access level=0

注意:在首次启用 FILESTREAM 时,您可能需要重新启动计算机才能配置驱动程序。

(2)“FILESTREAM 共享名称”显示在安装过程中选择的 FILESTREAM 共享的只读名称。

在本次实验中,我们将“FILESTREAM 访问级别” 设定为:已启用完全访问。

如果是通过T-SQL脚本执行,则运行以下脚本:

EXEC syssp_configure N'filestream access level', N'2'

RECONFIGURE WITH OVERRIDE

注意:设置完成之后,重启实例。

3、配置防火墙

若要在防火墙保护的环境中使用 FILESTREAM,客户端和服务器都必须能够将 DNS 名称解析为包含 FILESTREAM 文件的服务器。FILESTREAM 要求 Windows 文件共享端口 139 和 445 处于打开状态。

二、配置文件组

1、添加文件组

完成上述 *** 作之后,就可以为该数据库添加专用于FileStream的文件组。

如果是通过脚本 *** 作,请运行以下脚本:

ALTER DATABASE [db01] ADD FILEGROUP [FileStreamFileGroup] CONTAINS FILESTREAM

2、添加文件

完成上述 *** 作之后,就可以为该数据库添加FilStream类型的数据库文件。

在本例中,系统并没有为“FileStream数据”的文件类型创建mdf或ndf文件,而是在文件夹C:\SqlData下面自动创建以逻辑名称命名的文件夹,即 C:\SqlData\FileData。其中filestreamhdr 文件是 FILESTREAM 容器的头文件。当这个数据库被删除时,mdf、ndf、log连同这个文件夹都会被删除。

如果是通过脚本 *** 作,请运行以下脚本:

ALTER DATABASE [db01] ADD FILE ( NAME = N'FileData', FILENAME = N'C:\SqlData\FileData' ) TO FILEGROUP [FileStreamFileGroup]

注意:在上例中,在运行脚本之前,必须存在C:\SqlData,建议使用右侧的选择按钮选择路径。如果路径不存在,就会报错:

同时不能存在重复的文件夹,即不能存在C:\SqlData\FileData。否则也会报错:

3、启动非事务访问

FileTable 使 Windows 应用程序可以获取 FILESTREAM 数据的 Windows 文件句柄而不需要 SQL Server 事务。为了允许对 SQL Server 中存储的文件进行此非事务性访问,必须为要包含 FileTable 的每个数据库在数据库级别上指定所需的非事务性访问级别。

选项解释如下:

(1)FILESTREAM 非事务访问

为从文件系统到 FileTables 中存储的 FILESTREAM 数据的非事务性访问指定以下选项之一:OFF、READ_ONLY 或 FULL。

如果在服务器上未启用 FILESTREAM,则该值将设置为 OFF 并且被禁用。在本次实验中,将其设置为FULL。

(2)FILESTREAM 目录名称

为与所选数据库相关联的 FILESTREAM 数据指定目录名称。在 FileTable 文件夹层次结构中,此数据库级目录将成为在实例级别为 FILESTREAM 指定的共享名称的子级以及在数据库中创建的 FileTable 的父级。

如果启用非事务性访问时没有提供目录名称,则在以后必须提供它,这样才能在数据库中创建 FileTable。

如果是通过脚本执行,如下:

ALTER DATABASE db01

SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'ImageFiles' )

注意:更改现有数据库时,调用带 DIRECTORY_NAME FILESTREAM 选项的 ALTER DATABASE (Transact-SQL) 语句。使用这些选项更改目录名称时,数据库必须以独占方式锁定,没有打开的文件句柄。

说明:为检查是否在数据库上启用了非事务性访问,可以查询目录视图,脚本如下:

SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc

FROM sysdatabase_filestream_options

三、创建FileTable

1、创建第一个FileTable

“SQL Server Management Studio”只提供一个脚本模板,要想创建FileTable还是得用脚本完成:

USE db01

CREATE TABLE ImageTable1 AS FILETABLE

官方的范本为:

USE [db01]

CREATE TABLE [dbo][ImageTable1] AS FILETABLE ON [PRIMARY] FILESTREAM_ON [FileStreamFileGroup]

WITH

(FILETABLE_DIRECTORY = N'ImageTable1', FILETABLE_COLLATE_FILENAME = Chinese_PRC_CI_AS)

2、创建第二个FileTable

CREATE TABLE ImageTable2 AS FILETABLE

3、获取共享路径

文件表创建之后,就会相应的产生一个文件表共享目录,该目录路径可以通过内建函数获取:

SELECT FileTableRootPath('ImageTable1')

本次实验所返回的结果为:\\SQL1\SqlFile\ImageFiles\ImageTable1

4、查看

通过Windows资源管理器,可见已经创建了以GUID命名的文件夹。

通过SQL Server Management Studio,查看表的结构。

四、 *** 作

1、向文件夹中添加文件

通过 “Windows资源管理器”,向文件夹\\SQL1\SqlFile\ImageFiles\ImageTable1中添加一个文件A01GIF。然后运行脚本:

select from ImageTable1

结果如下:

可见, SQL Server自动在Table中添加了记录。

2、文件改名

运行以下脚本:

update ImageTable1 set name='CupGIF' where name='A01GIF'

通过“Windows资源管理器”,查看文件夹\\SQL1\SqlFile\ImageFiles\ImageTable1,可见文件A01GIF已经被改名为CupGIF 。

3、查看共享文件夹

我们可以继续复制其他文件,然后通过“Windows资源管理器”,查看文件夹。

4、删除文件

可以使用脚本删除,例如:

Delete ImageTable1 where name='CupGIF'

或者,通过“Windows资源管理器”直接删除该文件。

五、备份和还原

1、备份数据库

使用 SQL Server 备份数据库时,FILESTREAM 数据将与数据库中的结构化数据一起备份。

2、部分备份

如果不想将 FILESTREAM 数据与关系数据一起备份,则可以使用部分备份将 FILESTREAM 文件组排除在外。

远程连接sql server 2000服务器的解决方案

一、 看ping 服务器IP能否ping通。

这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确。

二 、在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。

如telnet 202114100100 1433

通常端口值是1433,因为1433是sql server 2000的对于Tcp/IP的默认侦听端口。如果有问题,通常这一步会出问题。通常的提示是“……无法打开连接,连接失败"。

如果这一步有问题,应该检查以下选项。

1 检查远程服务器是否启动了sql server 2000服务。如果没有,则启动。

2 检查服务器端有没启用Tcp/IP协议,因为远程连接(通过因特网)需要靠这个协议。检查方法是,在服务器上打开 开始菜单->程序->Microsoft SQL Server->服务器网络实用工具,看启用的协议里是否有tcp/ip协议,如果没有,则启用它。

3 检查服务器的tcp/ip端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的tcp/ip的属性,确保默认端口为1433,并且隐藏服务器复选框没有勾上。

事实上,如果默认端口被修改,也是可以的,但是在客户端做telnet测试时,写服务器端口号时必须与服务器配置的端口号保持一致。如果隐藏服务器复选框被勾选,则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接,但是Tcp/ip协议的默认端口将被隐式修改为2433,在客户端连接时必须作相应的改变。

4 如果服务器端 *** 作系统打过sp2补丁,则要对windows防火墙作一定的配置,要对它开放1433端口,通常在测试时可以直接关掉windows防火墙(其他的防火墙也关掉最好)。

5 检查服务器是否在1433端口侦听。如果服务器没有在tcp连接的1433端口侦听,则是连接不上的。检查方法是在服务器的dos或命令行下面输入

netstat -a -n 或者是netstat -an,在结果列表里看是否有类似 tcp 127001 1433 listening 的项。如果没有,则通常需要给sql server 2000打上至少sp3的补丁。其实在服务器端启动查询分析器,输入 select @@version 执行后可以看到版本号,版本号在802039以下的都需要打补丁。

如果以上都没问题,这时再做telnet 服务器ip 1433 测试,将会看到屏幕一闪之后光标在左上角不停闪动。恭喜,马上可以开始在企业管理器或查询分析器连接了。

三、 检查客户端设置

程序->Microsoft SQL Server -> 客户端网络使用工具。像在服务器网络实用工具里一样,确保客户端tcp/ip协议启用,并且默认端口为1433(或其他端口,与服务器端保持一致就行)。

四、 在企业管理器里或查询那分析器连接测试

企业管理器->右键SQlserver组->新建sqlserver注册->下一步->写入远程IP->下一步->选Sqlserver登陆->下一步->写入登陆名与密码(sa,password)->下一步->下一步->完成

查询分析器->文件->连接->写入远程IP->写入登录名和密码(sa,password)->确定

通常建议在查询分析器里做,因为默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是4秒,而查询分析器是15秒。

修改默认连接超时的方法:

企业管理器->工具->选项->在d出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡->连接设置->在 登录超时(秒) 后面的框里输入一个较大的数字

查询分析器->工具->选项->连接->在 登录超时(秒) 后面的框里输入一个较大的数字

通常就可以连通了,如果提示错误,则进入下一步。

五、 错误产生的原因通常是由于SQL Server使用了"仅 Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(如 sa )进行连接。解决方法如下所示:

1 在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server。

2 展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡。

3 在"身份验证"下,选择"SQL Server和 Windows "。

4 重新启动SQL Server服务。(在dos或命令行下面net stop mssqlserver停止服务,net start mssqlserver启动服务,也是一种快捷的方法)。

附注:在连接本地服务器时,通常使用的是命名管道协议(在服务器网络实用工具里可以看到启用的协议有这个),默认端口是445,因此在本地能连通是不能说明什么问题的,连接远程服务器是完全不同的协议)

美国Microsoft公司推出的一种关系型数据库系统。SQL

Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。

将软件安装根目录下的data文件夹中的SQL数据文件复制出来(数据文件名是当初创建帐套时输入的数据库名,共有两个,一个以mdf扩展名结尾,一个以ldf扩展名结尾)。

我们先把Windows系统重新安装,再把SQL2008重新安装,最后把管家婆软件重新安装,完成后再SQL2008的SQL Server Management Studio(锤子图标)中进行数据的恢复,具体 *** 作如下:

1、我们在电脑左下角的开始-程序-Microsoft SQL Server 2008 R2中选择SQL Server Management Studio

2、连接进去后,我们在数据库上鼠标右键选择附加。

3、进入后点击“添加”,选择我们之前复制出来的,扩展名为mdf结尾的文件名,点击确定即可。

4、最后点击下方的确定,等待附加完成即可。

一、Report Server数据库:

是一个SQL Server数据库。它能够存储SSRS配置部分,报告定义,报告元数据,报告历史,缓存政策,快照,资源,安全设置,加密的数据,调度和提交数据,以及扩展信息。

注意事项:尽管用户能够直接存取在SSRS目录下的数据库并且能够直接修改SSRS使用的对象;但在实践中,不推荐(或不支持)这样做,因为在SSRS目录下的内在数据和结构不能被保证与不同版本的SSRS、服务包或补丁相兼容。

需要把Report Server数据库当作产品数据库之一来对待。尽管许多开发人员都习惯把RDL存储在一个单独的仓库中,并因此导致经常恢复RDL。但是,损失快照数据能够带来消极的业务影响。

例如,用户可能使用快照的报告"相对静止"数据的能力来作一些业务决定。

二、ReportServerTempDB数据库:

是SSRS使用的临时数据库。这个数据库负责存储中间处理结果,例如报表服务器生成的会话和执行数据、缓存报表以及工作表。

正常情况下,Report Server能够周期性地清ReportServerTempDB中的到期的和孤立的数据。后台进程定期清理时间间隔由参数CleanupCycleMinutes控制,这个参数位于

<Installation Drive>\<Program Files or Program Files(x86)>\Microsoft SQL Server\<SSRS Instance>\Reporting Services\ReportServer 下的rsreportserverconfig配置文件中。

注意事项:为了把临时快照存储在文件系统而不是数据库中,管理员应该完成下列步骤。

1、修改RSReportServerconfig,并把WebServiceUseFileShareStorage和WindowsServiceUseFileShareStorage设置为True。

2、把FileShareStorageLocation设置为一个全称路径。默认路径是"C:\Program Files\Microsoft SQL Server\MSSQL3\Reporting Services\RSTempFiles"。

不同于SQL Server的tempdb,当在ReportServerTempDB中的数据存储时限超过SQL Server时,Report Server将会重启。

而且,Report Server能够周期性地清除ReportServerTempDB中的到期的和孤立的数据。 在任何时间,所有的ReportServerTempDB中的数据都能够被以最小(或毫无)影响删除掉。

扩展资料:

ReportServerTempDB增长异常的处理:

1、首先停止SSRS服务,删除SessionDate表的数据。

2、 然后启动SSRS服务,收缩ReportServerTempDB数据库。

如果磁盘空间足够的情况下,就不要收缩ReportServerTempDB数据库了。如果磁盘空间实在紧张,那么收缩也是必须的。

如果还存在dboSessionData不断增长的情况,最好创建做一个作业,每天定期清理那些过期的会话信息。

参考资料:

百度百科--SqlServer

以上就是关于C#采用SQL server本地数据库,关闭窗体后,数据库为什么没有更新,建的表也不存在全部的内容,包括:C#采用SQL server本地数据库,关闭窗体后,数据库为什么没有更新,建的表也不存在、sqlserver、如何利用SQL Server 2012数据库 *** 作事务管理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9321525.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存