日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

仿ISQL功能的实现,可以实现批处理功能

發布時間:2023/12/1 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 仿ISQL功能的实现,可以实现批处理功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

具體請見下載文件:/Files/bigmouthz/DNet寫的數據庫isql執行程序(含源碼).rar
部分代碼如下:
??
DBCore.DataBaseVisitor.AbsDBHelper dbhelper = null ;

??private void bt_DBLink_Click(object sender, System.EventArgs e)
??{
???try
???{
????this.GetDBConfig(xml);
????this.GetControlValue();
????dbhelper = GetDBHelper();
????System.Windows.Forms.MessageBox.Show("數據庫連接正常!");
????this.rtb_State.Text += "數據庫連接正常! :_)\r\n";
???}
???catch
???{
????System.Windows.Forms.MessageBox.Show("數據庫連接失敗!");
????this.rtb_State.Text += "數據庫連接失敗! :_(\r\n";
???}
??}

??private void bt_LoadDBConfig_Click(object sender, System.EventArgs e)
??{
???this.GetDBConfig(xml);
???this.SetControlValue();
???this.rtb_State.Text += "數據庫配置載入完成! :_)\r\n";
??}

??private void bt_SaveDBConfig_Click(object sender, System.EventArgs e)
??{
???this.GetControlValue();
???this.SetDBConfig(xml);
???this.rtb_State.Text += "文件已經保存完成! :_)\r\n";
??}

??private void bt_TestDBLink_Click(object sender, System.EventArgs e)
??{
???try
???{
????this.GetDBConfig(xml);
????this.GetControlValue();
????DBCore.DataBaseVisitor.AbsDBHelper dbhelper = GetDBHelper();
????object o = dbhelper.ExecuteScalar(TestSql);
????this.rtb_State.Text = "測試時間:" + System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")+ "\r\n";
????this.rtb_State.Text +=? o == null ? "None Data!":o.ToString();
????this.rtb_State.Text += "執行完成! :_)\r\n";
????this.rtb_sql.Text = TestSql;
????System.Windows.Forms.MessageBox.Show("測試通過!數據庫連接正常!");
???}
???catch
???{
????System.Windows.Forms.MessageBox.Show("數據庫連接測試失敗!");
????this.rtb_State.Text += "數據庫連接測試失敗! :_)\r\n";
???}
??}

??private void bt_load_Click(object sender, System.EventArgs e)
??{
???System.Windows.Forms.OpenFileDialog OFD;
???OFD = new System.Windows.Forms.OpenFileDialog();
???if(OFD.ShowDialog() == DialogResult.OK)
???{
????System.IO.StreamReader sr = new System.IO.StreamReader(OFD.FileName,System.Text.Encoding.GetEncoding("gb2312"));
????this.rtb_sql.Text = sr.ReadToEnd();
????sr.Close();
????this.rtb_State.Text += "載入文件完成! :_)\r\n";
???}
??}

??private void batch_Exec()
??{
???string split = "\n";
???string tmp = this.rtb_sql.Text;

???int ibit = 0;
???int itmp = 0;
???while (ibit >= 0)
???{
????ibit = tmp.IndexOf(split,itmp);
????if (ibit - itmp < 0) break;
????string line = tmp.Substring(itmp, ibit - itmp);
????itmp = ibit + 1;
????if (line == null || line == "")??continue;
????auto_Exec(line);
???}
??}

??private void auto_Exec(string filepath)
??{
???try
???{
????System.IO.StreamReader sr = new System.IO.StreamReader(filepath,System.Text.Encoding.GetEncoding("gb2312"));
????this.rtb_sql.Text = sr.ReadToEnd();
????sr.Close();
????this.rtb_State.Text += "自動載入文件完成! :_)\r\n";
????Singe_Exec();
???}
???catch
???{
????this.rtb_sql.Text = "";
????this.rtb_State.Text += "自動載入文件失敗! :_(\r\n";
???}
??}

??private void Singe_Exec()
??{
???if (dbhelper == null)
???{
????try
????{
?????this.GetDBConfig(xml);
?????this.GetControlValue();
?????dbhelper = GetDBHelper();
?????this.rtb_State.Text += "數據庫連接成功! :_)\r\n";
????}
????catch
????{
?????System.Windows.Forms.MessageBox.Show("數據庫連接失敗!");
?????this.rtb_State.Text += "數據庫連接失敗! :_(\r\n";
????}
???}

???try
???{
????string sql = this.rtb_sql.Text;
????sql = sql.Replace("\n"," ").Replace("\r"," ").Replace("\t"," ");
????if (this.cb_resulttype.Checked)
????{
?????System.Data.DataSet ds = dbhelper.ExecuteDataset(sql);
?????this.dg_display.DataSource = ds;
?????this.dg_display.Expand(-1);?
?????this.rtb_State.Text += "執行時間:" + System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")+ "\r\n";
?????this.rtb_State.Text += "執行完成! :_)\r\n";
????}
????else
????{
?????int o = dbhelper.ExecuteNonQuery(sql);
?????this.dg_display.DataSource = null;
?????this.rtb_State.Text += "執行時間:" + System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")+ "\r\n";
?????this.rtb_State.Text += "執行影響行數:" + o.ToString() +"\r\n";
?????this.rtb_State.Text += "執行完成! :_)\r\n";
????}
???}
???catch
???{
????System.Windows.Forms.MessageBox.Show("執行語句失敗!:-(");
????this.rtb_State.Text += "執行語句失敗! :_(\r\n";
???}
??}

??private void bt_Exec_Click(object sender, System.EventArgs e)
??{
???if (this.cb_ExecType.Checked)
???{
????batch_Exec();
???}
???else
???{
????Singe_Exec();
???}
??}

??#region Control_DBConfigVar
??private void SetControlValue()
??{
???this.cb_dblink.Text = this.DBConnection;
???this.tb_UserID.Text = this.UserID;
???this.tb_PassWord.Text = this.Password;
???this.tb_DBAddress.Text = this.DataSource;
???this.tb_DBName.Text = this.InitialCatalog;
??}

??private void GetControlValue()
??{
???this.DBConnection = this.cb_dblink.Text;
???this.UserID = this.tb_UserID.Text;
???this.Password = this.tb_PassWord.Text;
???this.DataSource = this.tb_DBAddress.Text;
???this.InitialCatalog = this.tb_DBName.Text;
??}
??#endregion

??#region DBConfig

??private string xml = System.Environment.CurrentDirectory + "/DBC.dll";
??private string Sql="user id=$0$;password=$1$;data source=$2$;initial catalog=$3$;persist security info=False";//Sql專用引擎連接串
??private string OleDb="Provider=sqloledb;Data Source=$2$;Initial Catalog=$3$;User Id=$0$;Password=$1$;";//OleDb引擎連接串
??private string Odbc="Driver={SQL Server};Server=$2$;Database=$3$;Uid=$0$;Pwd=$1$;";//Odbc引擎連接串

??????? private string DBConnection;//選擇連接的方式 Sql|Odbc|OleDb
??private string UserID;//數據庫用戶ID 在升級數據庫中要求使用SA用戶
??private string Password;//數據庫連接口令
??private string DataSource;//數據庫服務器的地址或者數據庫服務器名稱
??private string InitialCatalog;//指定要訪問的數據庫名稱

??private string TestSql = "select * from dtproperties";//測試Sql

??private void SetDBConfig(string xml)
??{
???/* *
?<?xml version="1.0" encoding="gb2312"?>
<DBConfig>
??<DataBase>
????<!--這個區域禁止修改Begin-->
????<Sql>user id=$0$;password=$1$;data source=$2$;initial catalog=$3$;persist security info=False</Sql>
????<Odbc>Driver={SQL Server};Server=$2$;Database=$3$;Uid=$0$;Pwd=$1$;</Odbc>
????<OleDb>Provider=sqloledb;Data Source=$2$;Initial Catalog=$3$;User Id=$0$;Password=$1$;</OleDb>
????<!--這個區域禁止修改End-->
????
????<DBConnection>Sql</DBConnection> <!--選擇連接的方式 Sql|Odbc|OleDb -->
????<UserID>Sa</UserID> <!--數據庫用戶ID 在升級數據庫中要求使用SA用戶-->
????<Password>jsl</Password>???? <!--數據庫連接口令-->
????<DataSource>10.200.1.251</DataSource> <!--數據庫服務器的地址或者數據庫服務器名稱-->
????<InitialCatalog>Qinghai</InitialCatalog><!--指定要訪問的數據庫名稱-->
??</DataBase>
</DBConfig>
<!--FrameWork DBConfig.XML-->
??? * */
???XmlTextWriter writer = new XmlTextWriter(xml,System.Text.Encoding.UTF8);
???writer.Formatting = System.Xml.Formatting.Indented;
???writer.IndentChar = '\t';
???writer.WriteStartDocument();
???writer.WriteComment("DataBase Config." + System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
???writer.WriteStartElement("DBConfig");
???writer.WriteStartElement("DataBase");
???writer.WriteComment("這個區域禁止修改Begin");
???writer.WriteElementString("Sql","user id=$0$;password=$1$;data source=$2$;initial catalog=$3$;persist security info=False");
???writer.WriteElementString("OleDb","Provider=sqloledb;Data Source=$2$;Initial Catalog=$3$;User Id=$0$;Password=$1$;");
???writer.WriteElementString("Odbc","Driver={SQL Server};Server=$2$;Database=$3$;Uid=$0$;Pwd=$1$;");
???writer.WriteComment("這個區域禁止修改End");
???writer.WriteElementString("DBConnection",DBConnection);
???writer.WriteComment("選擇連接的方式 Sql|Odbc|OleDb");
???writer.WriteElementString("UserID",UserID);
???writer.WriteComment("數據庫用戶ID 在升級數據庫中要求使用SA用戶");
???writer.WriteElementString("Password",Password);
???writer.WriteComment("數據庫連接口令");
???writer.WriteElementString("DataSource",DataSource);
???writer.WriteComment("數據庫服務器的地址或者數據庫服務器名稱");
???writer.WriteElementString("InitialCatalog",InitialCatalog);
???writer.WriteComment("指定要訪問的數據庫名稱");
???writer.WriteElementString("TestSql","select * from dtproperties");
???writer.WriteComment("測試用的Sql");
???writer.WriteEndElement();
???writer.WriteEndElement();
???writer.WriteEndDocument();
???writer.WriteComment("DBCore DBConfig.XML");
???writer.Flush();
???writer.Close();
??}


??private void GetDBConfig(string xml)
??{
???XmlTextReader reader = null;
???try
???{
????reader = new XmlTextReader(xml);
????while(!reader.EOF)
????{
?????while(reader.Read())
?????{
??????if (reader.NodeType == XmlNodeType.Element)
??????{
???????switch(reader.Name)
???????{
????????case "Sql":
?????????Sql = reader.ReadElementString("Sql");?break;
????????case "OleDb":
?????????OleDb = reader.ReadElementString("OleDb");?break;
????????case "Odbc":
?????????Odbc = reader.ReadElementString("Odbc");?break;
????????case "DBConnection":
?????????DBConnection = reader.ReadElementString("DBConnection");?break;
????????case "UserID":
?????????UserID = reader.ReadElementString("UserID");?break;
????????case "Password":
?????????Password = reader.ReadElementString("Password");?break;
????????case "DataSource":
?????????DataSource = reader.ReadElementString("DataSource");?break;
????????case "InitialCatalog":
?????????InitialCatalog = reader.ReadElementString("InitialCatalog");?break;
????????case "TestSql":
?????????TestSql =? reader.ReadElementString("TestSql"); break;
???????}
??????}
??????else if (reader.NodeType == XmlNodeType.EndElement)
??????{
???????break;
??????}
?????}
????}
???}
???finally
???{
????if (reader != null)??reader.Close();
???}
??}


??private DBCore.DataBaseVisitor.AbsDBHelper GetDBHelper()
??{
???DBCore.DataBaseVisitor.AbsDBHelper dbhelper ;
???switch(DBConnection)
???{
????case "Sql":
?????dbhelper = new DBCore.DataBaseVisitor.JSLSqlHelper();
?????Sql = Sql.Replace("$0$",UserID);
?????Sql = Sql.Replace("$1$",Password);
?????Sql = Sql.Replace("$2$",DataSource);
?????Sql = Sql.Replace("$3$",InitialCatalog);
?????dbhelper.SetDBConnection = Sql;
?????break;
????case "OleDb":
?????dbhelper = new DBCore.DataBaseVisitor.JSLOleDbHelper();
?????OleDb = OleDb.Replace("$0$",UserID);
?????OleDb = OleDb.Replace("$1$",Password);
?????OleDb = OleDb.Replace("$2$",DataSource);
?????OleDb = OleDb.Replace("$3$",InitialCatalog);
?????dbhelper.SetDBConnection = OleDb;
?????break;
????case "Odbc":
?????dbhelper = new DBCore.DataBaseVisitor.JSLOdbcHelper();
?????Odbc = Odbc.Replace("$0$",UserID);
?????Odbc = Odbc.Replace("$1$",Password);
?????Odbc = Odbc.Replace("$2$",DataSource);
?????Odbc = Odbc.Replace("$3$",InitialCatalog);
?????dbhelper.SetDBConnection = Odbc;
?????break;
????default :
?????dbhelper = null;
?????break;
???}
???return dbhelper;
??}


??#endregion

??private void bt_SaveFile_Click(object sender, System.EventArgs e)
??{
???System.Windows.Forms.SaveFileDialog SFD;
???SFD = new System.Windows.Forms.SaveFileDialog();
???SFD.Filter = "txt files (*.txt)|*.txt|sql Files(*.sql)|*.sql|All files (*.*)|*.*";
???SFD.Title = "Save an Sql/Text File";
???SFD.RestoreDirectory = true ;
???if (SFD.ShowDialog() == DialogResult.OK)
???{
????if(SFD.FileName != "")
????{
?????using (System.IO.StreamWriter sw = new System.IO.StreamWriter(SFD.OpenFile(),System.Text.Encoding.GetEncoding("gb2312")))
?????{
??????sw.Write(this.rtb_sql.Text);
??????sw.Close();
?????}
????}
???}
??}


?}

轉載于:https://www.cnblogs.com/bigmouthz/archive/2006/01/25/323037.html

總結

以上是生活随笔為你收集整理的仿ISQL功能的实现,可以实现批处理功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。