如何用代码实现在应用程序当前目录新建sql server数据库?? 400 报错 RT。
假如我建库的代码是这样:
str = "CREATE DATABASE MyDatabase ON PRIMARY " + "(NAME = MyDatabase_Data, " + "FILENAME = 'C:\\MyDatabaseData.mdf', " + "SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " + "LOG ON (NAME = MyDatabase_Log, " + "FILENAME = 'C:\\MyDatabaseLog.ldf', " + "SIZE = 1MB, " + "MAXSIZE = 5MB, " + "FILEGROWTH = 10%)";
现在里边的“FILENAME =”应该怎么改,就能实现题目的要求?
我写成:
"FILENAME = Application.ExecutablePath+"+"\\MyDatabaseData.mdf,"
后出错了
把错误列出来吧
######前后单引######
哇,第一次离老大这么近!老大好!
局部代码如下:
string connString = @"server=.\sqlexpress;integrated security=SSPI;database=master"; 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();
出错的提示:
False!System.Data.SqlClient.SqlException: '.' 附近有语法错误。 字符串 ',SIZE = 1MB, MAXSIZE = 5MB, FILEGROWTH = 10%)' 后的引号不完整。 在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolea n breakConnection) 在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception , Boolean breakConnection) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObj ect stateObj) 在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cm dHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, Tds ParserStateObject stateObj) 在 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) 在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult res ult, String methodName, Boolean sendToPipe) 在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() 在 CreateSql.Program.Main(String[] args) 位置 C:\Documents and Settings\Tansi on\桌面\create database\ConsoleApplication1\ConsoleApplication1\Program.cs:行号 31
里面说的行号31是指
myCommand.ExecuteNonQuery(); 这一句
唉,对自己无语了,
"FILENAME = Application.ExecutablePath+" +
\\MyDatabaseLog.ldf',
.ldf后面的单引号'去掉后不警告这个了,但又出现新的警告:
False!System.Data.SqlClient.SqlException: '.' 附近有语法错误。 在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolea n breakConnection) 在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception , Boolean breakConnection) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObj ect stateObj) 在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cm dHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, Tds ParserStateObject stateObj) 在 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) 在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult res ult, String methodName, Boolean sendToPipe) 在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() 在 CreateSql.Program.Main(String[] args) 位置 C:\Documents and Settings\Tansi on\桌面\create database\ConsoleApplication1\ConsoleApplication1\Program.cs:行号 31
这个就不知道怎么回事了。
######把拼出的sql语句取出来,放在企业管理器里运行一下就知道错在哪里了。版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。