vs连接上数据库后,往数据库里插入数据总是提示数据被另一个进程使用,无法访问。
打开vs studio2008.新建winform项目,然后在解决方案上添加新建项,选择基于服务的数据库。添加链接数据库代码
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release\"))
{
dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory",dataDir);
}
using( SqlConnection conn = new SqlConnection(@"DataSource=.;AttachDBFilename=|DataDirectory|\Database1.mdf;integrated Security=True"))
{
conn.Open()
}
然后newSQLCMD,往数据库中insert数据,总是提示数据库文件正在被另一个进程使用,禁止访问。不知道什么意思,本人小菜鸟,往各位大大解决哈
错误信息:
错误 1 Unable to copy file "C:\Users\MicroSoft\Desktop\ConsoleApplication1\ConsoleApplication1\Database1.mdf" to "bin\Debug\Database1.mdf".文件“C:\Users\MicroSoft\Desktop\ConsoleApplication1\ConsoleApplication1\Database1.mdf”正由另一进程使用,因此该进程无法访问该文件。
------解决方案--------------------如果是编译时的错误,应该是在什么地方copy数据库了,可以vs中找到数据库文件,看看它的属性中。 是不是有什么Copy always或者类似的东西。
想楼上所说的,还是用app.config这类的方式连接好点。
------解决方案--------------------数据库正在使用,你是试下关闭,或者换种链接方式
------解决方案--------------------应该是数据库之前已经被附加过了,所以不能用这个链接字符串
connectionString="Integrated Security=false;uid=sa;password=123456;Persist Security Info=False;Initial Catalog=数据库名称;Data Source=.;TimeOut=3;"
------解决方案--------------------
肯定不是 “. ” ,这个 “.”是预留出来让你自己填的,你本地的应该填写你的服务器名称
------解决方案--------------------
DataSource=.;AttachDBFilename=
------解决方案--------------------
DataDirectory
------解决方案--------------------
\Database1.mdf;integrated Security=True
这个链接字符串是有问题的吧,你是不是用了人家默认的?注意:标红的地方得自己填写
DataSource那里如果连接本地数据库是不是该填“.”啊?
肯定不是 “. ” ,这个 “.”是预留出来让你自己填的,你本地的应该填写你的服务器名称
额?好吧,我去试试。那如果是连接本地数据是不是该填“MsSqlserver”或者expressSqlServer?
不是,建议你去看看MSDN,应该填Sql Server Manager Studio里面的那个