您的位置:首页 > 移动开发 > Objective-C

Test The Speed of .sdf file

2005-10-14 09:50 591 查看
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlServerCe; using System.IO; namespace TestSdfSpeed { public partial class Form1 : Form { private static string strSdfPath = "//Program Files//TestSdfSpeed//Mail.sdf";//the Path and file name. private static string strSdfPWD="a";//Password to .sdf private static string strConn = "Data Source=" + strSdfPath + ";Password = " + strSdfPWD;//SqlCeConnection private static SqlCeConnection Conn = new SqlCeConnection(); private static SqlCeCommand Cmd = new SqlCeCom
4000
mand(); private static SqlCeDataReader reader; public Form1() { InitializeComponent(); Conn.ConnectionString = strConn; Cmd.Connection = Conn; } private void btnCreateSDF_Click(object sender, EventArgs e) { //if the .sdf exists,then delete it. if (File.Exists(strSdfPath)) File.Delete(strSdfPath); try { //Create the .sdf file SqlCeEngine myEngine = new SqlCeEngine(strConn); myEngine.CreateDatabase(); myEngine.Dispose(); Conn.ConnectionString = strConn; Conn.Open(); MessageBox.Show("Openning Conn is Successful!"); } catch (SqlCeException ex) { MessageBox.Show(ex.Message); } finally { Conn.Close(); } } private void btnCreateMail_Click(object sender, EventArgs e) { long startWhile = 0; long endWhile = 0; long Time = 0; try { Conn.Open(); string strSql= "CREATE TABLE Mail(ID int," + "MailHead ntext,"+ "MailID nvarchar(255),"+ "MailFrom nvarchar(255)," +//发件人地址 "SenderName nvarchar(50),"+ "MailTo nvarchar(255), " +//收件人地址 "MailCc nvarchar(255)," +//抄送 "MailBcc nvarchar(255), " +//密件抄送 "MailFw nvarchar(255),"+//转发 "Subject nvarchar(255)," +//邮件标题 "UserName nvarchar(50),"+ "MailDate datetime,"+ "MailTime nvarchar(15),"+ "MailBody ntext,"+ "DelFlag nvarchar(2),"+ "SlaveFlag nvarchar(2)," + "ReadFlag nvarchar(2)," + "ImportFlag nvarchar(2)," + "DelivFlag nvarchar(2)," + "SignFlag nvarchar(2)," + "FolderPath nvarchar(255),"+ "MailSize int,"+ "BodyFormat nvarchar(50),"+ "AtthachmentID nvarchar(255),"+ "Language nvarchar(50),"+ "ByNewFlag nvarchar(10),"+ "HeadOnly nvarchar(10),"+ "ReplyForward nvarchar(3),"+ "OrignalMailID int,"+ "ID1 int not null identity(1,1)"+ ")"; Cmd.CommandText = strSql; startWhile = System.DateTime.Now.Ticks; Cmd.ExecuteNonQuery(); //strSql = "Create Index Idx_MailID On Mail(ID,MailID)"; //Cmd.CommandText = strSql; //Cmd.ExecuteNonQuery(); strSql = "Create Index Idx_ID On Mail(ID)"; Cmd.CommandText = strSql; Cmd.ExecuteNonQuery(); strSql = "Create Index Idx_MailID On Mail(MailID)"; Cmd.CommandText = strSql; Cmd.ExecuteNonQuery(); strSql = "Create Index Idx_MailFrom On Mail(MailFrom)"; Cmd.CommandText = strSql; Cmd.ExecuteNonQuery(); strSql = "Create Index Idx_MailTo On Mail(MailTo)"; Cmd.CommandText = strSql; Cmd.ExecuteNonQuery(); strSql = "Create Index Idx_Subject On Mail(Subject)"; Cmd.CommandText = strSql; Cmd.ExecuteNonQuery(); strSql = "Create Index Idx_MailDate On Mail(MailDate)"; Cmd.CommandText = strSql; Cmd.ExecuteNonQuery(); strSql = "Create Index Idx_DelFlag On Mail(DelFlag)"; Cmd.CommandText = strSql; Cmd.ExecuteNonQuery(); strSql = "Create Index Idx_UserName On Mail(UserName)"; Cmd.CommandText = strSql; Cmd.ExecuteNonQuery(); strSql = "Create Index Idx_MailSize On Mail(MailSize)"; Cmd.CommandText = strSql; Cmd.ExecuteNonQuery(); endWhile = System.DateTime.Now.Ticks; Time = endWhile - startWhile; } catch (SqlCeException ex) { MessageBox.Show(ex.Message); } finally { MessageBox.Show("Creating Table is successful!"+Time.ToString()); Conn.Close(); } } private void btnInsert_Click(object sender, EventArgs e) { string txtMailBody = "2"; for (int k = 0; k < 100; k++) { txtMailBody += "2"; } long startWhile = 0; long endWhile = 0; long Time = 0; startWhile = System.DateTime.Now.Ticks; try { Conn.Open(); for (int i = 0, j = 10000; i < 10000; i++, j--) { Random rdm1 = new Random(unchecked((int)DateTime.Now.Ticks)); int radom_test = rdm1.Next(1000); string strMailFrom = GetRandomString(20); string strMailTo = GetRandomString(20); string strSubject = GetRandomString(30); int iMailSize = rdm1.Next(1000); int iDelFlag = rdm1.Next(0, 2); string strSql = "INSERT INTO Mail(ID,MailBody,MailID,UserName,MailDate,MailFrom,MailTo,Subject,MailSize,DelFlag)" + "VALUES (?,?,?,?,?,?,?,?,?,?)"; Cmd.CommandText = strSql; Cmd.Parameters.Clear(); Cmd.Parameters.Add("@ID", j.ToString()); Cmd.Parameters.Add("@MailBody",txtMailBody.ToString()); Cmd.Parameters.Add("@MailID", radom_test.ToString()); Cmd.Parameters.Add("@UserName", radom_test); Cmd.Parameters.Add("@MailDate", System.DateTime.Now); Cmd.Parameters.Add("@MailFrom", strMailFrom.ToString()); Cmd.Parameters.Add("@MailTo", strMailTo.ToString()); Cmd.Parameters.Add("@Subject", strSubject.ToString()); Cmd.Parameters.Add("@MailSize", iMailSize); Cmd.Parameters.Add("@DelFlag", iDelFlag); Cmd.Prepare(); Cmd.ExecuteNonQuery(); } endWhile = System.DateTime.Now.Ticks; Time = endWhile - startWhile; } catch (SqlCeException ex) { System.Windows.Forms.MessageBox.Show(ex.Message); MessageBox.Show(ex.Message); } finally { MessageBox.Show("Insert is Successful!" + Time.ToString()); Conn.Close(); } } private void btnSelect_Click(object sender, EventArgs e) { long startWhile = 0; long endWhile = 0; long Time = 0; int i = 0; string strSql = "Select ID,MailID,MailBody,ID1,UserName,MailFrom,MailTo,Subject,MailDate,DelFlag,MailSize from Mail Order By MailSize asc"; try { Conn.Open(); Cmd.CommandText = strSql; startWhile = System.DateTime.Now.Ticks; reader = Cmd.ExecuteReader(); while (reader.Read()) { i++; } endWhile = System.DateTime.Now.Ticks; Time = endWhile - startWhile; } catch (SqlCeException ex) { MessageBox.Show(ex.Message); } finally { MessageBox.Show("Select Over!" + Time.ToString()+"/r/n"+i.ToString()); reader.Close(); Conn.Close(); } } private string GetRandomString(int maxLength) { string randomString = null; Random rNumber = new Random(Environment.TickCount); for (int i = 0; i < maxLength; i++) { randomString = randomString + Convert.ToChar(rNumber.Next(65, 90)); } return randomString; } private void btnInsertOneRecord_Click(object sender, EventArgs e) { string txtMailBody = "2"; for (int k = 0; k < 100; k++) { txtMailBody += "2"; } long startWhile = 0; long endWhile = 0; long Time = 0; startWhile = System.DateTime.Now.Ticks; try { Conn.Open(); Random rdm1 = new Random(unchecked((int)DateTime.Now.Ticks)); int radom_test = rdm1.Next(1000); string strMailFrom = GetRandomString(20); string strMailTo = GetRandomString(20); string strSubject = GetRandomString(30); int iMailSize = rdm1.Next(1000); int iDelFlag = rdm1.Next(0, 2); string strSql = "INSERT INTO Mail(ID,MailBody,MailID,UserName,MailDate,MailFrom,MailTo,Subject,MailSize,DelFlag)" + "VALUES (?,?,?,?,?,?,?,?,?,?)"; Cmd.CommandText = strSql; Cmd.Parameters.Clear(); Cmd.Parameters.Add("@ID", "10001"); Cmd.Parameters.Add("@MailBody", txtMailBody.ToString()); Cmd.Parameters.Add("@MailID", radom_test.ToString()); Cmd.Parameters.Add("@UserName", radom_test); Cmd.Parameters.Add("@MailDate", System.DateTime.Now); Cmd.Parameters.Add("@MailFrom", strMailFrom.ToString()); Cmd.Parameters.Add("@MailTo", strMailTo.ToString()); Cmd.Parameters.Add("@Subject", strSubject.ToString()); Cmd.Parameters.Add("@MailSize", iMailSize); Cmd.Parameters.Add("@DelFlag", iDelFlag); Cmd.Prepare(); Cmd.ExecuteNonQuery(); endWhile = System.DateTime.Now.Ticks; Time = endWhile - startWhile; } catch (SqlCeException ex) { System.Windows.Forms.MessageBox.Show(ex.Message); MessageBox.Show(ex.Message); } finally { MessageBox.Show("Insert is Successful!" + Time.ToString()); Conn.Close(); } } } }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐