ASP+SQL. 因为sql服务器不允许装MDE Enginee之类的东西,所以无法用存储过程bulkcopy将sql数据导入access. 现在只能在客户端将sql里的记录导入access。因为数据量很大,几十万条,现在一条条读,用datatable写入MDB,需要十多分钟,现在有没有好的办法在网页客户端将SQL快速倒入access?谢谢
以下是我目前的代码,有没有办法能改进一下,让导入大量数据速度快点?
using (System.Data.SqlClient.SqlCommand sqlcmd1 = new System.Data.SqlClient.SqlCommand("select * from [Tbl_users]", SQLconn))
{
sqlcmd1.CommandType = System.Data.CommandType.Text;
SqlDataAdapter sda = new SqlDataAdapter(sqlcmd1);
DataTable dt = new DataTable();
sda.Fill(dt); for (int i = 0; i < dt.Rows.Count; i++)
{
mdbcmd1.Parameters.Clear();
mdbcmd1.Parameters.AddWithValue("@[username]", dt.Rows[i]["username"].ToString());
mdbcmd1.Parameters.AddWithValue("@[phone]", dt.Rows[i]["phone"].ToString());
mdbcmd1.Parameters.AddWithValue("@[birthday]", dt.Rows[i]["birthday"].ToString());
mdbcmd1.Parameters.AddWithValue("@[address]", dt.Rows[i]["address"].ToString()); mdbcmd1.ExecuteNonQuery();
} }
以下是我目前的代码,有没有办法能改进一下,让导入大量数据速度快点?
using (System.Data.SqlClient.SqlCommand sqlcmd1 = new System.Data.SqlClient.SqlCommand("select * from [Tbl_users]", SQLconn))
{
sqlcmd1.CommandType = System.Data.CommandType.Text;
SqlDataAdapter sda = new SqlDataAdapter(sqlcmd1);
DataTable dt = new DataTable();
sda.Fill(dt); for (int i = 0; i < dt.Rows.Count; i++)
{
mdbcmd1.Parameters.Clear();
mdbcmd1.Parameters.AddWithValue("@[username]", dt.Rows[i]["username"].ToString());
mdbcmd1.Parameters.AddWithValue("@[phone]", dt.Rows[i]["phone"].ToString());
mdbcmd1.Parameters.AddWithValue("@[birthday]", dt.Rows[i]["birthday"].ToString());
mdbcmd1.Parameters.AddWithValue("@[address]", dt.Rows[i]["address"].ToString()); mdbcmd1.ExecuteNonQuery();
} }
但是不知道如何调用oledbdataadapter更新access。想用类似批量更新,例如读取300条就更新一次。
sql和access table 都是一样的,有username,address,phone...字段。
初学,最好有代码。谢谢了。