将数据库附加到服务器(C#中调用sp_attach_db)

goldcoast 2008-11-25 03:52:11
private void AttachDataBase()
{
string Str_mdf;
string Str_ldf;
string SqlCommandText;

Str_mdf = "E:\\DataBase\\Test_Data.MDF";
Str_ldf = "E:\\DataBase\\Test_log.LDF";

SqlCommandText = "EXEC sp_attach_db @dbname = N'"
+ "Lisun_Test" + "',"
+ "@filename1 = N'" + Str_mdf + "',"
+ "@filename2 = N'" + Str_ldf + "'";

SqlCommand thisCommand = new SqlCommand();

thisCommand.CommandType = System.Data.CommandType.StoredProcedure;
thisCommand.Connection = SQLConn; //全局SQLConn已经正常打开
thisCommand.CommandText = SqlCommandText;

thisCommand.ExecuteNonQuery(); //为何执行到这一句话就出错,我把SqlCommandText中的文本拷贝到sqlserver2005中运行正常.


...全文
222 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hao1hao2hao3 2008-11-25
  • 打赏
  • 举报
回复
LZ的SqlCommandText 是一个动态的SQL语句吧!不是存储过程 ,所以要改成2楼的样式。1楼说的对,存储过程不是这样用的。
techsky 2008-11-25
  • 打赏
  • 举报
回复
SqlCommand thisCommand = new SqlCommand(SqlCommandText ,SQLConn); 

这样不是更好吗?
干嘛要多那么多语句?
tinghai_xu 2008-11-25
  • 打赏
  • 举报
回复
因为你用的是EXEC所以要使用TEXT模式,或者你去掉EXEC然后参数使用Parameter的形式
acqy 2008-11-25
  • 打赏
  • 举报
回复
我上面的代码是通过的,你不要在sql语句中直接写参数,用Parameters.Add就可以通过。
acqy 2008-11-25
  • 打赏
  • 举报
回复
试试这样:


class Program
{
static void Main(string[] args)
{
string mdf = @"C:\test.mdf";
string ldf = @"C:\test_log.ldf";
string cmd = string.Format("sp_attach_db");
SqlConnection connection = new SqlConnection("Server=(local); Database=master; Integrated Security=SSPI");
connection.Open();
SqlCommand command = new SqlCommand();
command.Parameters.Add(new SqlParameter("dbname", "Liu"));
command.Parameters.Add(new SqlParameter("filename1", mdf));
command.Parameters.Add(new SqlParameter("filename2", ldf));
command.Connection = connection;
command.CommandText = cmd;
command.CommandType = CommandType.StoredProcedure;
command.ExecuteNonQuery();
}
}

qinhl99 2008-11-25
  • 打赏
  • 举报
回复
一楼对的!

thisCommand.CommandType = System.Data.CommandType.Text;
Old_Mouse 2008-11-25
  • 打赏
  • 举报
回复
thisCommand.CommandType = System.Data.CommandType.StoredProcedure;
改成SQL试试。存储过程不是这么用的。

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧