代码create database时出现了操作系统异常,求改错的方法
代码create database时出现了操作系统错误,求改错的方法
如题。
我用代码创建数据库,局部代码如下:
建库的时候定义创建的mdf文件的目录,为应用程序当前所在目录(请见上方代码)
但是运行时出现下方的错误:
其中,行号55 是指
不知是哪里出错了,请大家指教!
------解决方案--------------------
Application.ExecutablePath
替换为:
Application.StartupPath
Application.ExecutablePath包含了你的应用程序名称,所以建立MDF时认为把应用程序当目录用了,肯定是会报错的
------解决方案--------------------
看你这里 WindowsFormsApplication1.EXE\MyDatabaseData.mdf" 的目录查找失败,出现操作系统错误 123(文件名、目录名或卷标语法不正确。)。
WindowsFormsApplication1.EXE 是你自己的程序文件了,不是文件夹,所以下面不可能放 mdf文件了。
解决方法:
Application.ExecutablePath 改成 Application.StartupPath
如题。
我用代码创建数据库,局部代码如下:
- C# code
string connString = @"server=.\sqlexpress;user id=sa;password=123"; SqlConnection myConn = new SqlConnection(connString); string str = "CREATE DATABASE MyDatabase ON PRIMARY " + "(NAME = MyDatabase_Data, " + "FILENAME ='"+ Application.ExecutablePath+ "\\MyDatabaseData.mdf'," + "SIZE = 3MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " + "LOG ON (NAME = MyDatabase_Log, " + "FILENAME ='"+ Application.ExecutablePath+ "\\MyDatabaseLog.ldf'," + "SIZE = 1MB, " + "MAXSIZE = 5MB, " + "FILEGROWTH = 10%)"; SqlCommand myCommand = new SqlCommand(str, myConn); try { myConn.Open(); myCommand.ExecuteNonQuery();
建库的时候定义创建的mdf文件的目录,为应用程序当前所在目录(请见上方代码)
但是运行时出现下方的错误:
- C# code
System.Data.SqlClient.SqlException: 对文件 "C:\Documents and Settings\Tansion\桌面 \create database\WindowsFormsApplication1\WindowsFormsApplication1 \bin\Debug\WindowsFormsApplication1.EXE\MyDatabaseData.mdf" 的目录查找失败,出现操作系统错误 123(文件名、目录名或卷标语法不正确。)。 CREATE DATABASE 失败。无法创建列出的某些文件名。请查看相关错误。 在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) 在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) 在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) 在 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) 在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) 在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() 在 WindowsFormsApplication1.Form1.button1_Click(Object sender, EventArgs e) 位置 C:\Documents and Settings\Tansion\桌面\create database\WindowsFormsApplication1 \WindowsFormsApplication1\Form1.cs:行号 55
其中,行号55 是指
- C# code
myCommand.ExecuteNonQuery();
不知是哪里出错了,请大家指教!
------解决方案--------------------
Application.ExecutablePath
替换为:
Application.StartupPath
Application.ExecutablePath包含了你的应用程序名称,所以建立MDF时认为把应用程序当目录用了,肯定是会报错的
------解决方案--------------------
看你这里 WindowsFormsApplication1.EXE\MyDatabaseData.mdf" 的目录查找失败,出现操作系统错误 123(文件名、目录名或卷标语法不正确。)。
WindowsFormsApplication1.EXE 是你自己的程序文件了,不是文件夹,所以下面不可能放 mdf文件了。
解决方法:
Application.ExecutablePath 改成 Application.StartupPath