如何初始化数据库,请提供一点思路和方法,谢谢 在installSheld好像安装时有执行*.sql文件一项。在sqlserver中可以引用SQLDMO,用其中ExecuteImmediate()函数执行sql语句 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我要单击BUTTON时初始化数据库 那你就在按钮上写一些sql语句不就好了呀。什么create table呀、insert呀什么的。 用DELETE语句去删除每一个表,有没有更好的方法啊 没有 DELETE语句 简单实用 用DELETE语句删除表格里的记录,这是最简单的初始化啦 1、使用SQLDMO2、使用SQL脚本文件SQLDMO: #region 数据库备份 /// <summary> /// 数据库备份 /// </summary> public static void DbBackup(string p_strServer, string p_strUser, string p_strPWD, string p_strDataBaseName, string p_strBakFilePath) { SQLDMO.Backup oBackup = new SQLDMO.BackupClass(); SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass(); try { oSQLServer.LoginSecure = false; oSQLServer.Connect(p_strServer, p_strUser, p_strPWD); oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database; oBackup.Database = p_strDataBaseName; oBackup.Files = p_strBakFilePath; oBackup.BackupSetName = p_strDataBaseName; oBackup.BackupSetDescription = "数据库备份"; oBackup.Initialize = true; oBackup.SQLBackup(oSQLServer); } catch(Exception ex) { throw ex; } finally { oSQLServer.DisConnect(); } } public static void DbBackup(string p_strServer, string p_strDataBaseName, string p_strBakFilePath) { SQLDMO.Backup oBackup = new SQLDMO.BackupClass(); SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass(); try { oSQLServer.LoginSecure = true; oSQLServer.LoginTimeout = 10; //oSQLServer.Connect(); oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database; oBackup.Database = p_strDataBaseName; oBackup.Files = p_strBakFilePath; oBackup.BackupSetName = p_strDataBaseName; oBackup.BackupSetDescription = "数据库备份"; oBackup.Initialize = true; oBackup.SQLBackup(oSQLServer); } catch(Exception ex) { throw ex; } finally { oSQLServer.DisConnect(); } } #endregion #region 数据库恢复 /// <summary> /// 数据库恢复 /// </summary> public static void DbRestore(string p_strServer, string p_strUser, string p_strPWD, string p_strDataBaseName, string p_strBakFilePath) { SQLDMO.Restore oRestore = new SQLDMO.RestoreClass(); SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass(); try { oSQLServer.LoginSecure = false; oSQLServer.Connect(p_strServer, p_strUser, p_strPWD); oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database; oRestore.Database = p_strDataBaseName; oRestore.Files = p_strBakFilePath; oRestore.FileNumber = 1; oRestore.ReplaceDatabase = true; oRestore.SQLRestore(oSQLServer); } catch(Exception ex) { throw ex; } finally { oSQLServer.DisConnect(); } } #endregion脚本: public class ClassDBAccess { private SqlConnection Con; private string ConStr = ""; public ClassDBAccess(string p_strServerName, string p_strUserID, string p_strPWD, string p_DataBase) { try { ConStr = "server = " + p_strServerName + ";uid = " + p_strUserID + ";pwd = " + p_strPWD + ";database = " + p_DataBase; } catch { } } #region 属性 private string ConString { get { if(ConStr == "") { try { XmlDocument doc = new XmlDocument(); doc.Load("ServerConfig.xml"); string userid = doc.SelectSingleNode("ServerConfig/UserId").InnerText; string password = doc.SelectSingleNode("ServerConfig/PassWord").InnerText; string servername = doc.SelectSingleNode("ServerConfig/ServerName").InnerText; string database = doc.SelectSingleNode("ServerConfig/DataBase").InnerText; ConStr = "server = " + servername + ";uid = " + userid + ";pwd = " + password + ";database = " + database; } catch(Exception ex) { throw ex; } } return ConStr; } } public SqlConnection MyConnection { get { if(Con == null) { Con = new SqlConnection(ConStr); } return Con; } } #endregion /// <summary> /// 执行Sql文件 /// </summary> /// <param name="varFileName"></param> /// <returns></returns> public bool ExecuteSqlFile(string varFileName) { if(!File.Exists(varFileName)) { return false; } //StreamReader sr = File.OpenText(varFileName); FileStream fs= new FileStream(varFileName, System.IO.FileMode.Open); StreamReader sr=new StreamReader(fs,System.Text.Encoding.Default); ArrayList alSql = new ArrayList(); string commandText = ""; string varLine = ""; while(sr.Peek() > -1) { varLine = sr.ReadLine(); if(varLine == "") { continue; } if(varLine != "GO") { commandText += varLine; commandText += " \r\n "; } else { alSql.Add(commandText); commandText = ""; } } sr.Close(); try { ExecuteCommand(alSql); } catch { return false; } return true; } private void ExecuteCommand(ArrayList varSqlList) { MyConnection.Open(); SqlTransaction varTrans = MyConnection.BeginTransaction(); SqlCommand command = new SqlCommand(); command.Connection = MyConnection; command.Transaction = varTrans; try { foreach(string varcommandText in varSqlList) { command.CommandText = varcommandText; command.ExecuteNonQuery(); } varTrans.Commit(); } catch(Exception ex) { varTrans.Rollback(); throw ex; } finally { MyConnection.Close(); } } } CAD二次开发 进度条问题 帮忙看看webbrowser为何还不能使用代理 Panel的FindControl 问题我怎么就是找不到动态生成的控件呢 请教自定义的控件如何在代码中动态创建? vs2005发布后出错 push水晶报表 在线等,各位大神帮帮忙。。。。。 string字符串怎样获取指定位置范围的子字符串啊 oledb,sqlclient,odbc各自在什么时候用比较合适呢? : iis承载remoting的问题。。。。。。。无法加载类型。。。。。。。。。 C# Winform 已知一DataTable 怎么把部分列数据复制到另一DataTable?
2、使用SQL脚本文件SQLDMO:
#region 数据库备份
/// <summary>
/// 数据库备份
/// </summary>
public static void DbBackup(string p_strServer, string p_strUser, string p_strPWD, string p_strDataBaseName, string p_strBakFilePath)
{
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass(); try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect(p_strServer, p_strUser, p_strPWD);
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database = p_strDataBaseName;
oBackup.Files = p_strBakFilePath;
oBackup.BackupSetName = p_strDataBaseName;
oBackup.BackupSetDescription = "数据库备份";
oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);
}
catch(Exception ex)
{
throw ex;
}
finally
{
oSQLServer.DisConnect();
}
} public static void DbBackup(string p_strServer, string p_strDataBaseName, string p_strBakFilePath)
{
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass(); try
{
oSQLServer.LoginSecure = true;
oSQLServer.LoginTimeout = 10;
//oSQLServer.Connect();
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database = p_strDataBaseName;
oBackup.Files = p_strBakFilePath;
oBackup.BackupSetName = p_strDataBaseName;
oBackup.BackupSetDescription = "数据库备份";
oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);
}
catch(Exception ex)
{
throw ex;
}
finally
{
oSQLServer.DisConnect();
}
} #endregion #region 数据库恢复
/// <summary>
/// 数据库恢复
/// </summary>
public static void DbRestore(string p_strServer, string p_strUser, string p_strPWD, string p_strDataBaseName, string p_strBakFilePath)
{
SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect(p_strServer, p_strUser, p_strPWD);
oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
oRestore.Database = p_strDataBaseName;
oRestore.Files = p_strBakFilePath;
oRestore.FileNumber = 1;
oRestore.ReplaceDatabase = true;
oRestore.SQLRestore(oSQLServer);
}
catch(Exception ex)
{
throw ex;
}
finally
{
oSQLServer.DisConnect();
}
} #endregion
脚本: public class ClassDBAccess
{
private SqlConnection Con;
private string ConStr = ""; public ClassDBAccess(string p_strServerName, string p_strUserID, string p_strPWD, string p_DataBase)
{
try
{
ConStr = "server = " + p_strServerName + ";uid = " + p_strUserID + ";pwd = " + p_strPWD + ";database = " + p_DataBase;
}
catch
{
}
} #region 属性 private string ConString
{
get
{
if(ConStr == "")
{
try
{
XmlDocument doc = new XmlDocument();
doc.Load("ServerConfig.xml");
string userid = doc.SelectSingleNode("ServerConfig/UserId").InnerText;
string password = doc.SelectSingleNode("ServerConfig/PassWord").InnerText;
string servername = doc.SelectSingleNode("ServerConfig/ServerName").InnerText;
string database = doc.SelectSingleNode("ServerConfig/DataBase").InnerText;
ConStr = "server = " + servername + ";uid = "
+ userid + ";pwd = " + password + ";database = " + database;
}
catch(Exception ex)
{
throw ex;
}
} return ConStr;
}
} public SqlConnection MyConnection
{
get
{
if(Con == null)
{
Con = new SqlConnection(ConStr);
}
return Con;
}
}
#endregion
/// <summary>
/// 执行Sql文件
/// </summary>
/// <param name="varFileName"></param>
/// <returns></returns>
public bool ExecuteSqlFile(string varFileName)
{
if(!File.Exists(varFileName))
{
return false;
} //StreamReader sr = File.OpenText(varFileName); FileStream fs= new FileStream(varFileName, System.IO.FileMode.Open);
StreamReader sr=new StreamReader(fs,System.Text.Encoding.Default); ArrayList alSql = new ArrayList(); string commandText = ""; string varLine = ""; while(sr.Peek() > -1)
{
varLine = sr.ReadLine();
if(varLine == "")
{
continue;
}
if(varLine != "GO")
{
commandText += varLine;
commandText += " \r\n ";
}
else
{
alSql.Add(commandText);
commandText = "";
}
}
sr.Close(); try
{
ExecuteCommand(alSql);
}
catch
{
return false;
} return true;
}
private void ExecuteCommand(ArrayList varSqlList)
{
MyConnection.Open();
SqlTransaction varTrans = MyConnection.BeginTransaction(); SqlCommand command = new SqlCommand();
command.Connection = MyConnection;
command.Transaction = varTrans; try
{
foreach(string varcommandText in varSqlList)
{
command.CommandText = varcommandText;
command.ExecuteNonQuery();
}
varTrans.Commit();
}
catch(Exception ex)
{
varTrans.Rollback();
throw ex;
}
finally
{
MyConnection.Close();
}
}
}