呼叫方法執行sql指令碼來建立資料庫
{
DataTable recordinfo = null;
try
{
string ftp = System.Configuration.ConfigurationManager.AppSettings["Ftp"];
string serviceIp = System.Configuration.ConfigurationManager.AppSettings["Server"];
string port = System.Configuration.ConfigurationManager.AppSettings["Port"];
string username = System.Configuration.ConfigurationManager.AppSettings["UserName"];
string password = System.Configuration.ConfigurationManager.AppSettings["Password"];
string connstring = string.Format("Data Source='{0}';Port='{1}';Database='mysql';User Id='{2}';password='{3}';charset='utf8';pooling=true;max pool size=100;connection timeout=36000;Treat Tiny As Boolean=false;default command timeout=90000", "127.0.0.1", port, username, password);
string sql = "SELECT * from information_schema.SCHEMATA WHERE SCHEMA_NAME='table_ftp'";
var dt = Helpers.MySqlHelper.ExecuteDataTable(connstring, CommandType.Text, sql, null);
if (dt.Rows.Count == 0)
{
bool success = ExecuteSqlFile(@"C:\Users\Desktop\ftp.sql", connstring);
if (!success)
{
MessageBox.Show("建立資料庫失敗!");
}
}
string selectsql = ""; //查詢表返回一個datatable
recordinfo = Helpers.MySqlHelper.ExecuteDataTable(connstring, CommandType.Text, selectsql, null);
}
catch (Exception)
{
}
return recordinfo;
}
private bool ExecuteSqlFile(string varFileName, String Conn)
{
using (StreamReader reader = new StreamReader(varFileName, System.Text.Encoding.GetEncoding("utf-8")))
{
MySqlCommand command;
MySqlConnection Connection = new MySqlConnection(Conn);
Connection.Open();
try
{
string line = "";
string l;
while (true)
{
// 如果line被使用,則設為空
if (line.EndsWith(";"))
line = "";
l = reader.ReadLine();
// 如果到了最後一行,則退出迴圈
if (l == null) break;
// 去除空格
l = l.TrimEnd();
// 如果是空行,則跳出迴圈
if (l == "") continue;
// 如果是註釋,則跳出迴圈
if (l.StartsWith("--")) continue;
// 行數加1
line += l;
// 如果不是完整的一條語句,則繼續讀取
if (!line.EndsWith(";")) continue;
if (line.StartsWith("/*!"))
{
continue;
}
//執行當前行
command = new MySqlCommand(line, Connection);
command.ExecuteNonQuery();
}
}
finally
{
Connection.Close();
}
}
return true;
}
sql指令碼:
CREATE DATABASE IF NOT EXISTS `table_ftp` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `table_ftp`;
DROP TABLE IF EXISTS `issuedinfo`;
CREATE TABLE `issuedinfo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`packetname` varchar(255) DEFAULT NULL,
`dqdm` varchar(255) DEFAULT NULL,
`dqmc` varchar(255) DEFAULT NULL,
`datetime` datetime DEFAULT NULL,
`adress` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `reporteinfo`;
CREATE TABLE `reporteinfo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`packetname` varchar(255) DEFAULT NULL,
`dqdm` varchar(255) DEFAULT NULL,
`dqmc` varchar(255) DEFAULT NULL,
`datetime` datetime DEFAULT NULL,
`school` varchar(255) DEFAULT NULL,
`address` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;