第一步、建立DataTable

protected void Build_Click( object sender, EventArgs e)
{
DataTable dt = new DataTable("number");
DataColumn c1 = new DataColumn("numberID", typeof(int));
DataColumn c2 = new DataColumn("value", typeof(string));
dt.Columns.Add(c1);
dt.Columns.Add(c2);
long baseValue = Convert.ToInt64(TextBox1.Text);
long topValue = Convert.ToInt64(TextBox2.Text);
Response.Write(baseValue.ToString());
for(long i=baseValue;i<topValue;i++)
{
DataRow r1 = dt.NewRow();
r1[0] = Convert.ToInt32(i);
r1[1] = i.ToString();
dt.Rows.Add(r1);
}
InsertTable(dt);
}
二、編寫插入資料庫的方法

public void InsertTable(DataTable table1)
{
string strInsert="insert into Number values (@value)";
SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["connStr"]);
conn.Open();
SqlCommand com = new SqlCommand(strInsert, conn);
SqlParameter p1 = new SqlParameter("@value", SqlDbType.VarChar);
com.Parameters.Add(p1);
for(int i=0;i<table1.Rows.Count;i++)
{
DataRow row=table1.Rows[i];
p1.Value=row[1].ToString();
com.ExecuteNonQuery();
}
conn.Close();
} 通過編寫這兩個方法,基本的功能就已經實作,不過其間存在一個緻命的性能問題,在資料量在相當大的情況下效率會相當的低,是以在Sql Server批量插入資料時(特别是有規律可尋的大資料面前),我們多采用存儲過程的方式優化其性能。

CREATE PROCEDURE up_number_ins

AS


DECLARE @base int

DECLARE @top int


SET @top = 1000

SET @base = 10


WHILE @base < @top

BEGIN


INSERT INTO number VALUES ( @base )


SET @base = @base + 1

END

GO