分隔SQL语句并执行SQL语句
2015-11-25 17:34:14 访问(1478) 赞(0) 踩(0)
/// <summary>
/// 保存事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
/// <param name="xdbHelper">数据库链接串</param>
protected void btnSaveClick(object sender, EventArgs e, DBHelper xdbHelper)
{
string sql = this.txt_Input.Text.Trim();
if (sql.Length == 0)
{
FineUI.Alert.Show("请输入SQL语句。");
return;
}
if (!UserSessionData.IsAdministrator(xdbHelper))
{
string strPwd = this.txt_DataBasePassword.Text;
if (!CheckDataBaseManagePower(strPwd))
{
this.txt_Result.Text = "执行密码错误。";
return;
}
}
StringBuilder logResult = new StringBuilder();
bool bIsCreate = true;
string dbConnectionString = this.txt_dbConnectionString.Text.Trim();
string emDBHelper = this.ddl_emDBHelper.SelectedValue;
if (xdbHelper == null)
{
if (dbConnectionString.Length == 0)
{
xdbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
}
else
{
xdbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper(dbConnectionString, emDBHelper);
}
}
else
{
// 没有打开链接 //
bIsCreate = xdbHelper.IsNotOpen();
}
try
{
if (bIsCreate)
xdbHelper.OpenDBHelper();
string[] sArray = sql.Split(new char[] { '\r', '\n' });
string strTmp = "";
bool isFirst = true;
StringBuilder strSQL = new StringBuilder();
int returnResult = 0;
int idx = 0;
string execSQL = "";
foreach (string s in sArray)
{
if (s == null || s.Length == 0)
continue;
strTmp = s.Trim();
if (strTmp.Length == 0)
continue;
if (strTmp.StartsWith("--"))
{
if (isFirst)
continue;
execSQL = strSQL.ToString();
// 遇到断行,执行SQL语句 //
returnResult = xdbHelper.ExecuteNonQuery(execSQL);
++idx;
logResult.AppendLine(idx.ToString() + "、执行SQL语句:");
logResult.AppendLine(execSQL);
logResult.AppendLine( "影响" + returnResult.ToString() + "行记录。" );
logResult.AppendLine();
strSQL = new StringBuilder();
isFirst = true;
}
else
{
strSQL.AppendLine(s);
isFirst = false;
}
}
if (!isFirst)
{
execSQL = strSQL.ToString();
// 遇到断行,执行SQL语句 //
returnResult = xdbHelper.ExecuteNonQuery(execSQL);
++idx;
logResult.AppendLine(idx.ToString() + "、执行SQL语句:");
logResult.AppendLine(execSQL);
logResult.AppendLine("影响" + returnResult.ToString() + "行记录。");
logResult.AppendLine();
}
logResult.AppendLine();
logResult.AppendLine("执行完成...");
if (bIsCreate)
xdbHelper.EndDBHelper();
}
catch (Exception err)
{
if (bIsCreate)
xdbHelper.TranDBHelper();
txt_Result.Text = "系统异常:" + err.Message;
throw err;
}
finally
{
if (bIsCreate)
xdbHelper.FinallyDBHelper();
}
this.txt_Result.Text = logResult.ToString();
}
标签:
分隔SQL语句并执行SQL语句 


上一条:
下一条:
相关评论
发表评论