c#的数据库连接问题

问题描述

在一个程序中,同样的数据库连接语句在一个窗口中可以运行,在别的窗口中都提示如图:这里把数据库连接语句也贴出来。如下:try{SqlConnectioncon=newSqlConnection(@"Server=.;AttachDbFilename="+dir_db+"\data2.mdf;Database=data2;Trusted_Connection=Yes;");//dir_db为数据库的路径。SqlCommandcmd=con.CreateCommand();con.Open();cmd.CommandText="Select*fromrenwu";SqlDataAdapteradp=newSqlDataAdapter();adp.SelectCommand=cmd;DataSetds=newDataSet();adp.Fill(ds,"renwu");this.dataGridView1.DataSource=ds;this.dataGridView1.DataMember="renwu";con.Close();}catch(Exceptione){MessageBox.Show(e.ToString());}请大侠们不吝赐教!!!不胜感激!!!

解决方案

解决方案二:
同一个程序中数据库不用连接两次,如果非要这么做,那先把前一个连接关闭了再重新去连接。
解决方案三:
为啥要用attechdb的方式呢?
解决方案四:
引用2楼starfd的回复:

为啥要用attechdb的方式呢?

因为需要灵活设置数据库路径的。
解决方案五:
引用2楼starfd的回复:

为啥要用attechdb的方式呢?

前面的数据库连接都关闭了哦!
解决方案六:
可以把Database=data2去掉吗?
解决方案七:
什么叫做“在别的窗口中”?难道说你想用一个文件在两个进程中附件?哪里的文档说过允许多进程附加数据库文件了?
解决方案八:
引用楼主pittyboy的回复:

这里把数据库连接语句也贴出来。如下:try{SqlConnectioncon=newSqlConnection(@"Server=.;AttachDbFilename="+dir_db+"\data2.mdf;Database=data2;Trusted_Connection=Yes;");//dir_db为数据库的路径。SqlCommandcmd=con.CreateCommand();con.Open();cmd.CommandText="Select*fromrenwu";..........

可以保证,在任意需要使用con的地方,临时new一个SqlConnection对象并且.Open()它,并且多线程并发地“创建、打开、关闭、创建、打开、关闭.....”完全没有问题。并不需要什么“先关闭、再创建打开”。你完全可以并发这样做,不会报你的这种错误。你需要看看你的进程“之外”,还有什么东西(例如查询分析器)在锁住.mdf文件。最主要地,你在#3楼的回答是“有些过”的。使用AttahcDbFileName要尽量收缩在进程内使用。例如应该写成using(varcon=newSqlConnection(@"DataSource=(LocalDB)MSSQLLocalDB;AttachDbFilename=|DataDirectory|mdfabcd.mdf;IntegratedSecurity=True")){.......}

注意这里应该使用DataDirectoty来约束在你的进程以内。不要胡乱使用绝对路径。
解决方案九:
引用4楼pittyboy的回复:

Quote: 引用2楼starfd的回复:
为啥要用attechdb的方式呢?

前面的数据库连接都关闭了哦!

绝对不需要如此!关闭数据库逻辑连接在编程中是必要的,因为连接池可以充分复用物理连接(特别是在服务器端编程中必须如此)。但是不是你这个目的、你这个异常的原因而需要关闭数据库连接。
解决方案十:
你这样操作数据库效率很低的了,还是老老实实把数据库以正常的方式用sqlserver加载,用平常的连接串吧。

时间: 2024-09-16 15:21:41

c#的数据库连接问题的相关文章

ef 通过DbCommandInterceptor 修改数据库连接 添加数据异常

问题描述 ef 通过DbCommandInterceptor 修改数据库连接 添加数据异常 我想实现数据库的读写分离 ef6里面加了DbCommandInterceptor的功能可是修改以后 在添加新数据的时候 抛出异常 "基础提供程序在 Commit 上失败 值不能为 null. 参数名: connection"但是数据已经成功添加那位前辈读到过这个问题呢 请指导 public class EntityCommandInterceptor: DbCommandInterceptor

javamelody+c3p0-Javamelody监控jdbc,数据库连接监控的问题

问题描述 Javamelody监控jdbc,数据库连接监控的问题 我用的数据库连接池是c3p0,javamelody么有监控到,怎么配置一下Javamelody让它监控呀!我网上查的 资料都是跟hibernate或者spring一起使用才能监控,如果就只用c3p0可以做到监控吗?哪位大神懂呀!帮帮忙了,谢谢! 解决方案 JavaMelody监控

不能连接数据库-weblogic部署web项目报:连接数据库失败,请检查系统数据库连接配置

问题描述 weblogic部署web项目报:连接数据库失败,请检查系统数据库连接配置 2C youngtop.sys.exception.YoungtopException: 系统错误:youngtop.sys.exception.YoungtopException: 数据库操作错误:errcode=17002sqlstate=08006java.sql.SQLRecoverableException: IO 错误: Software caused connection abort: socke

Python的Flask框架与数据库连接的教程

  这篇文章主要介绍了Python的Flask框架与数据库连接的教程,是Flask框架学习当中的基本知识,需要的朋友可以参考下 命令行方式运行Python脚本 在这个章节中,我们将写一些简单的数据库管理脚本.在此之前让我们来复习一下如何通过命令行方式执行Python脚本. 如果Linux 或者OS X的操作系统,需要有执行脚本的权限.例如: ? 1 chmod a+x script.py 该脚本有个指向使用解释器的命令行.再脚本赋予执行权限后就可以通过命令行执行,就像这样: like this:

一个动态生成数据库连接文件的类

我们知道,数据库连接文件(.udl)可以动态生成各种数据库连接的参数,而且它是一个文本文件.所以我们就可以动态生成,以增强程序的灵活性.但是该文件必须是UNICODE文本文件,不能是普通的ANSI文本文件.因此必须进行数据类型转换. 1.首先定义一个数据库连接结构: struct db{char Server[20];char Database[20];char UserId[20];char Password[20];}; 2.生成数据库连接文件: BOOL CUdlFile::CreateU

PHP教程.数据库连接(1)

教程|数据|数据库|数据库连接 中场一:数据库连接 前两章中集中介绍了PHP语言,现在停下来开始创建一个应用程序.在本章中将创建一个连接MySQL数据库的应用程序. 在学习过前面两章之后,你肯定已经学会了怎样处理PHP内部数据,以及怎样编写语句和函数.下一步从逻辑上讲,应该到了学习如何用SQL(结构化查询语句)处理PHP的外部数据的时候了.但是,在开始学习这部分内容前,让我们暂时中断基本原理的学习,放松一下. 让我带你一道探究PHP应用程序的开发历程.从字面意义上讲,每一个应用程序都应该是独特的

《PHP程序设计》 第五章 中场一:数据库连接

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />          第五章 中场一:数据库连接      前两章中集中介绍了PHP语言,现在停下来开始创建一个应用程序.在本章中将创建一个连接MySQL数据库的应用程序.      在学习过前面两章之后,你肯定已经学会了怎样处理PHP内部数据,以及怎样编写语句和函数.下一步从逻辑上讲,应该到了学习如何用SQL(结构化查询语句

PHP没有数据库连接池怎么破?PHP环境下使用Nginx ngx

线上运行了一套辅助系统是利用了开源的PHP改的,之前也没怎么玩过PHP,没想到这玩意儿还是有不少坑的.突然某一天一个用户做线上活动推广,然后短时间内涌进来了上万的请求,然后数据库连接耗尽,短时间内几乎拖垮了整个系统.导致系统奔溃的有多方面原因,今天主要针对PHP没有数据库连接池的原因来分析. 在PHP里,数据库连接在请求到达时建立,请求结束时释放.如果同时几千个请求到达,那就同时会建立几千个数据库连接,非常恐怖.而且PHP木有比较好的数据库连接池驱动方案,所以我们得另想办法. 解决这种问题有三种

十步搞定Servlet中的mssql2000数据库连接池

servlet|sql|数据|数据库|数据库连接 1.从aspx?FamilyID=4f8f2f01-1ed7-4c4d-8f7b-3d47969e66ae&DisplayLang=en#filelist">http://www.microsoft.com/downloads/details.aspx?FamilyID=4f8f2f01-1ed7-4c4d-8f7b-3d47969e66ae&DisplayLang=en#filelist下载"Microsoft

MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总结

js|mysql|编码|汉字|解决|数据|数据库|数据库连接|问题|中文 解决这类问题的方法很多,今天在此简单的终结一下,把常碰到的问题解决方法记下来! 1,   MySQL5.0中文问题解决方案如下:     1.在dos环境下,用mysql --default-character-set=gbk -u root -p 这句话进入mysql~~     2.建数据库.表,如下:         create database admin;         use admin;