• C#数据库操作之批量附加数据库


    窗体顶端

    private void button2_Click(object sender, EventArgs e)
     2         {
     3             if (lboxMenu.Items.Count > 0)
     4             {
     5                 Append(lboxMenu, progressBar);// 附加数据库操作
     6                  MessageBox.Show("提示:附加成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
     7             }
     8             else
     9                 MessageBox.Show("请选择要附加的数据库!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    10         }
    11
    12         /// <summary>
    13         /// 附加数据库操作
    14         /// </summary>
    15         /// <param name="lbox">将要附加的数据库列表</param>
    16         /// <param name="PBar">进度条</param>
    17          public void Append(ListBox lbox,  ProgressBar PBar)
    18         {
    19             using (SqlConnection con = new SqlConnection("server=.;pwd=" + strpwd + ";uid=" + struser + ";database=master"))
    20             {
    21                 PBar.Maximum = lbox.Items.Count;
    22                 for (int i = 0; i < lbox.Items.Count; i++)
    23                 {
    24                     string strFile = lbox.Items[i].ToString();
    25                     string[] getInfo = new string[2];
    26                     string mdfpath = lbox.Items[i].ToString();//mdf路径
    27                      string DataName = mdfpath.Substring(mdfpath.LastIndexOf("\\") + 1, mdfpath.Length - mdfpath.LastIndexOf("\\") - 1);
    28                     DataName = DataName.Remove(DataName.LastIndexOf("."));
    29
    30                     string logIndex = "_Data";
    31                     int n = DataName.IndexOf(logIndex);
    32
    33                     if (n == -1)
    34                     {
    35                         logName = mdfpath.Remove(mdfpath.LastIndexOf("\\")) + "\\" + DataName + "_log.ldf";
    36                     }
    37                     else
    38                     {
    39                         DataName = DataName.Remove(DataName.LastIndexOf("_"));
    40                         logName = mdfpath.Remove(mdfpath.LastIndexOf("\\")) + "\\" + DataName + "_log.ldf";
    41                     }
    42                     SqlCommand cmd = new SqlCommand();
    43                     con.Open();
    44                     cmd.Connection = con;
    45                     StringBuilder sb = new StringBuilder();
    46                     //将sp_attach_db追加到StringBuilder对象中
    47                      sb.Append("sp_attach_db @dbname='" + DataName + "',");
    48                     sb.Append("@filename1='" + mdfpath + "'");
    49                     if (System.IO.File.Exists(logName))
    50                     {
    51                         sb.Append(",@filename2='" + logName + "'");
    52                     }
    53                     else
    54                     {
    55                         MessageBox.Show("注意:缺少必备的log文件!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    56                         //此处需要修改
    57                      }
    58                     try
    59                     {
    60                         cmd.CommandText = sb.ToString();
    61                         cmd.ExecuteNonQuery();
    62                     }
    63                     catch (Exception ety)
    64                     {
    65                         //如果数据库中存在名为要添加的数据库则抛出异常
    66                          MessageBox.Show(ety.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
    67                     }
    68                     con.Close();
    69                     //获取附加数据库的名称
    70                      getInfo[0] = mdfpath.Substring(mdfpath.LastIndexOf("\\") + 1, mdfpath.Length - mdfpath.LastIndexOf("\\") - 1);
    71                     //获取附加数据库路径
    72                      getInfo[1] = mdfpath;
    73                     ListViewItem lvi = new ListViewItem(getInfo, "info");
    74                     //将名称和路径添加到listView中
    75                     listView1.Items.Add(lvi);
    76                     PBar.Value = i + 1;
    77                 }
    78             }
    79         }

  • 相关阅读:
    ES6 Promise 用法转载
    移动端滚动性能优化
    Python之禅
    Day01~15
    Python
    第一章 Java起源
    IMP-00009: 导出文件异常结束 imp
    浏览器访问网页的详细内部过程
    数据库连接池
    连接数据库 六大步骤
  • 原文地址:https://www.cnblogs.com/beeone/p/1981202.html
Copyright © 2020-2023  润新知