代码如下:
红线部分语句不能通过调试
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Windows.Forms;namespace ImportSqlDb

class Class1

static void Main(string[] args)
{
           
            string strSql = "server = localhost\\SQLEXPRESS;database = master; user id=sa;password=xiaosu185996799;persist security info=false";
            string DataName = "db_showHouse_Data";
string path = Directory.GetCurrentDirectory().ToString();
            string strMdf = path + @"\db_showHouse_Data.MDF";
            string strLdf = path + @" \db_showHouse_Log.LDF ";
          
CreateDataBase(strSql,DataName,strMdf,strLdf);
            MessageBox.Show("执行完毕!");
}        private static void CreateDataBase(string strSql, string DataName, string strMdf, string strLdf)
        {
           
String str;
SqlConnection myConn = new SqlConnection (strSql);
            //myConn .Execute sp_detach_db @dbname = "db_showHouse_Dat"; //需要先将数据库分离出来
            str = "Execute sp_attach_db @dbname='" + DataName + "',@filename1='" + strMdf + "',@filename2='" + strLdf + "'";
SqlCommand myCommand = new SqlCommand(str, myConn);
           
try
{
              
myConn.Open();
               
                myCommand.ExecuteNonQuery();//此句调试不成功
            
               
MessageBox.Show("恭喜,数据库配置成功!","操作成功",MessageBoxButtons.OK,MessageBoxIcon.Information);
               
}
catch
{
               
                MessageBox.Show("数据库配置失败,请确认数据库是否已经存在,或是你是否具有相应权限?请尝试,如仍无法解决,请及时与数据库管理员联系!","操作失败",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
finally
            {
              
      myConn.Close();
                myConn.Dispose();
                myCommand.Clone();
                myCommand.Dispose();
                //MessageBox.Show("释放完毕!");
}
} }
}

解决方案 »

  1.   

    string strMdf = System.Environment.CurrentDirectory  + @"\db_showHouse_Data.MDF"; 
    string strLdf = System.Environment.CurrentDirectory  + @"\db_showHouse_Log.LDF "; 
    这里出来的路径应该是 你的项目路径 bin\debug\db_showHouse_Data.MDF 你最好能再确认一下 
      

  2.   

    string strMdf = System.Environment.CurrentDirectory  + @"\db_showHouse_Data.MDF"; 
    调试下,绝对路径与相对路径
      

  3.   

    我觉得应该用系统的错误信息,不要用自己的,或者是自己的加上系统的错误信息,这样更容易直接看出错误的原因,比如下面这样
    ......
    catch (Exception ex)
    {
       MessageBox.Show(ex.Message.ToString(),"操作失败",MessageBoxButtons.OK,MessageBoxIcon.Error);
    }
    ......
      

  4.   

    我觉得应该用系统的错误信息,不要用自己的,或者是自己的加上系统的错误信息,这样更容易直接看出错误的原因,比如下面这样 
    ......
    catch (Exception ex)
    {
       MessageBox.Show(ex.Message.ToString(),"操作失败",MessageBoxButtons.OK,MessageBoxIcon.Error);
    }
    ......