C#创建数据库及导入sql脚本的方法
来源:本站原创|时间:2020-01-10|栏目:C#教程|点击: 次
本文实例讲述了C#创建数据库及导入sql脚本的方法。分享给大家供大家参考,具体如下:
C#创建数据库:
/// <summary> /// 创建数据库 /// </summary> /// <param name="connStr">连接字符串</param> /// <param name="_strDBName">数据库名称</param> /// <returns></returns> private static bool CreateDatabase(string connStr, string _strDBName) { bool bSuccess = false; try { using (SqlConnection conMaster = new SqlConnection(connStr)) { conMaster.Open(); // Check if the Database has existed first string strExist = @"select * from dbo.sysdatabases where name='" + _strDBName + @"'"; SqlCommand cmdExist = new SqlCommand(strExist, conMaster); SqlDataReader readerExist = cmdExist.ExecuteReader(); bool bExist = readerExist.HasRows; readerExist.Close(); if (bExist) { string strDel = @"drop database " + _strDBName; SqlCommand cmdDel = new SqlCommand(strDel, conMaster); cmdDel.ExecuteNonQuery(); } // Create the database now; string strDatabase = "Create Database [" + _strDBName + "]"; SqlCommand cmdCreate = new SqlCommand(strDatabase, conMaster); cmdCreate.ExecuteNonQuery(); conMaster.Close(); } bSuccess = true; } catch (Exception e) { throw e; } return bSuccess; }
C#导入sql脚本:
/// <summary> /// 导入sql脚本 /// </summary> /// <param name="sqlConnString">连接数据库字符串</param> /// <param name="varFileName">脚本路径</param> /// <returns></returns> private static bool ExecuteSqlFile(string sqlConnString, string varFileName) { if (!File.Exists(varFileName)) { return false; } StreamReader rs = new StreamReader(varFileName, System.Text.Encoding.Default); ArrayList alSql = new ArrayList(); string commandText = ""; string varLine = ""; while (rs.Peek() > -1) { varLine = rs.ReadLine(); if (varLine == "") { continue; } if (varLine != "GO") { commandText += varLine; commandText += "\r\n"; } else { commandText += ""; } } alSql.Add(commandText); rs.Close(); try { ExecuteCommand(sqlConnString, alSql); return true; } catch (Exception ex) { throw ex; } } private static void ExecuteCommand(string sqlConnString, ArrayList varSqlList) { using (SqlConnection conn = new SqlConnection(sqlConnString)) { conn.Open(); //Don't use Transaction, because some commands cannot execute in one Transaction. //SqlTransaction varTrans = conn.BeginTransaction(); SqlCommand command = new SqlCommand(); command.Connection = conn; //command.Transaction = varTrans; try { foreach (string varcommandText in varSqlList) { command.CommandText = varcommandText; command.ExecuteNonQuery(); } //varTrans.Commit(); } catch (Exception ex) { //varTrans.Rollback(); throw ex; } finally { conn.Close(); } } }
希望本文所述对大家C#程序设计有所帮助。
您可能感兴趣的文章
- 01-10winform实现创建最前端窗体的方法
- 01-10C#实现主窗体最小化后出现悬浮框及双击悬浮框恢复原窗体的方
- 01-10C#动态创建button的方法
- 01-10深入浅出23种设计模式
- 01-10winform创建不规则窗体的方法
- 01-10C#动态创建Access数据库及密码的方法
- 01-10C#实现在启动目录创建快捷方式的方法
- 01-10C#使用ADO.Net部件来访问Access数据库的方法
- 01-10C#路径,文件,目录及IO常见操作汇总
- 01-10C#禁止textbox复制、粘贴、剪切及鼠标右键的方法
阅读排行
本栏相关
- 01-10C#通过反射获取当前工程中所有窗体并
- 01-10关于ASP网页无法打开的解决方案
- 01-10WinForm限制窗体不能移到屏幕外的方法
- 01-10WinForm绘制圆角的方法
- 01-10C#实现txt定位指定行完整实例
- 01-10WinForm实现仿视频播放器左下角滚动新
- 01-10C#停止线程的方法
- 01-10C#实现清空回收站的方法
- 01-10C#通过重写Panel改变边框颜色与宽度的
- 01-10C#实现读取注册表监控当前操作系统已
随机阅读
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10SublimeText编译C开发环境设置
- 01-10delphi制作wav文件的方法
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 04-02jquery与jsp,用jquery
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-10C#中split用法实例总结
- 01-11ajax实现页面的局部加载