如题。
我用代码创建数据库,局部代码如下:
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文件的目录,为应用程序当前所在目录(请见上方代码)
但是运行时出现下方的错误:
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 是指
myCommand.ExecuteNonQuery();
不知是哪里出错了,请大家指教!
C:\Documents and Settings\Tansion\桌面
\create database\WindowsFormsApplication1\WindowsFormsApplication1
\bin\Debug\WindowsFormsApplication1.EXE
这个路径是否存在?
你好。
我用Application.ExecutablePath定义路径,即是当前应用程序的路径。那么只要应用程序没被删掉,路径就永远存在的吧?
C:\Documents and Settings\Tansion\桌面 \create database\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.EXE
这是应用程序本身的名称或者叫应用程序的全路径,此时系统要去找这个路径是找不到的,可以处理的方法有两种:
1、截取这个字符串路径。
2、用这个方法去取路径Application.StartupPath
C:\Documents and Settings\Tansion\桌面 \create database\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.EXE 这只是个文件, 不是目录, 咱可能在这下面创建文件呢?