C#里我要把SQL2000的数据导出到Access里,不可以直接导入,因为是异地的,对方也没有装sql2000。
我现在的方法是现将数据以sql语句的方式导出到记事本里,然后通过程序执行记事本中的sql语句将数据导入到Access里,
但是执行效率太低了,不知道有没有什么好的方法
请大虾指导。
9 个解决方案
#1
异地的也可以直接导入,远程连接SqlServer
#2
用两个循环,先读出原内容(可放在数据集中),
再遍历存入Access(预先建好)
再遍历存入Access(预先建好)
#3
不会写呀,大瞎帮写下吧
#4
大虾,键盘误!
不好意思啊
不好意思啊
#5
up
#6
....楼主是个大懒汉啊
#7
这样 你把异地Access 的数据库copy到你的计算机中的本地目录下面,
//读你本地计算机中上sql2000种的数据到datatable
private DataTable getDataTable()
{
string strSql;
DataTable myDS = new DataTable ();
strSql = "select * from [biao] "
//Response.Write(strSql);
myDS = GetDataTable (strSql);
return myDS;
}
public DataTable GetDataTable(string strSql)
{
SqlDataAdapter myDataAdapter;
DataTable myDT = new DataTable();
String strConn;
strConn = GetConnStr();
myDataAdapter = new SqlDataAdapter(strSql, strConn);
myDataAdapter.Fill(myDT);
return myDT;
}
//插入到你的Access数据库中
private void WtiteAccess(DataTable tb)
{
for (int i = 0; i < tb.Rows.Count ; i++)
{
string strSql = "INSERT INTO Data_b (" + strField + ") VALUES (" + strValue + ")";
ExecuteSQL(strSql);
}
}
public void ExecuteSQL(string strSql)
{
SqlConnection myConnection;
SqlCommand myCommand;
myConnection = new SqlConnection(GetConnStr());
myCommand = new SqlCommand(strSql, myConnection);
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
//最后把你的这个access放到异地的计算机上就可以了
//读你本地计算机中上sql2000种的数据到datatable
private DataTable getDataTable()
{
string strSql;
DataTable myDS = new DataTable ();
strSql = "select * from [biao] "
//Response.Write(strSql);
myDS = GetDataTable (strSql);
return myDS;
}
public DataTable GetDataTable(string strSql)
{
SqlDataAdapter myDataAdapter;
DataTable myDT = new DataTable();
String strConn;
strConn = GetConnStr();
myDataAdapter = new SqlDataAdapter(strSql, strConn);
myDataAdapter.Fill(myDT);
return myDT;
}
//插入到你的Access数据库中
private void WtiteAccess(DataTable tb)
{
for (int i = 0; i < tb.Rows.Count ; i++)
{
string strSql = "INSERT INTO Data_b (" + strField + ") VALUES (" + strValue + ")";
ExecuteSQL(strSql);
}
}
public void ExecuteSQL(string strSql)
{
SqlConnection myConnection;
SqlCommand myCommand;
myConnection = new SqlConnection(GetConnStr());
myCommand = new SqlCommand(strSql, myConnection);
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
//最后把你的这个access放到异地的计算机上就可以了
#8
不好意思 后面这个 要用这个方法(因为是Access):
public void ExecuteSQL(string strSql)
{
OleDbConnection myConnection;
OleDbCommand myCommand;
myConnection = new OleDbConnection(GetConnStr());
myCommand = new OleDbCommand(strSql, myConnection);
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
public void ExecuteSQL(string strSql)
{
OleDbConnection myConnection;
OleDbCommand myCommand;
myConnection = new OleDbConnection(GetConnStr());
myCommand = new OleDbCommand(strSql, myConnection);
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
#9
我的那个是单机版的,数据是从sql2000里来的,因为数据量很大,所以导入时间很长,需要一个比较好
解决方案,谢谢各位了
解决方案,谢谢各位了
#1
异地的也可以直接导入,远程连接SqlServer
#2
用两个循环,先读出原内容(可放在数据集中),
再遍历存入Access(预先建好)
再遍历存入Access(预先建好)
#3
不会写呀,大瞎帮写下吧
#4
大虾,键盘误!
不好意思啊
不好意思啊
#5
up
#6
....楼主是个大懒汉啊
#7
这样 你把异地Access 的数据库copy到你的计算机中的本地目录下面,
//读你本地计算机中上sql2000种的数据到datatable
private DataTable getDataTable()
{
string strSql;
DataTable myDS = new DataTable ();
strSql = "select * from [biao] "
//Response.Write(strSql);
myDS = GetDataTable (strSql);
return myDS;
}
public DataTable GetDataTable(string strSql)
{
SqlDataAdapter myDataAdapter;
DataTable myDT = new DataTable();
String strConn;
strConn = GetConnStr();
myDataAdapter = new SqlDataAdapter(strSql, strConn);
myDataAdapter.Fill(myDT);
return myDT;
}
//插入到你的Access数据库中
private void WtiteAccess(DataTable tb)
{
for (int i = 0; i < tb.Rows.Count ; i++)
{
string strSql = "INSERT INTO Data_b (" + strField + ") VALUES (" + strValue + ")";
ExecuteSQL(strSql);
}
}
public void ExecuteSQL(string strSql)
{
SqlConnection myConnection;
SqlCommand myCommand;
myConnection = new SqlConnection(GetConnStr());
myCommand = new SqlCommand(strSql, myConnection);
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
//最后把你的这个access放到异地的计算机上就可以了
//读你本地计算机中上sql2000种的数据到datatable
private DataTable getDataTable()
{
string strSql;
DataTable myDS = new DataTable ();
strSql = "select * from [biao] "
//Response.Write(strSql);
myDS = GetDataTable (strSql);
return myDS;
}
public DataTable GetDataTable(string strSql)
{
SqlDataAdapter myDataAdapter;
DataTable myDT = new DataTable();
String strConn;
strConn = GetConnStr();
myDataAdapter = new SqlDataAdapter(strSql, strConn);
myDataAdapter.Fill(myDT);
return myDT;
}
//插入到你的Access数据库中
private void WtiteAccess(DataTable tb)
{
for (int i = 0; i < tb.Rows.Count ; i++)
{
string strSql = "INSERT INTO Data_b (" + strField + ") VALUES (" + strValue + ")";
ExecuteSQL(strSql);
}
}
public void ExecuteSQL(string strSql)
{
SqlConnection myConnection;
SqlCommand myCommand;
myConnection = new SqlConnection(GetConnStr());
myCommand = new SqlCommand(strSql, myConnection);
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
//最后把你的这个access放到异地的计算机上就可以了
#8
不好意思 后面这个 要用这个方法(因为是Access):
public void ExecuteSQL(string strSql)
{
OleDbConnection myConnection;
OleDbCommand myCommand;
myConnection = new OleDbConnection(GetConnStr());
myCommand = new OleDbCommand(strSql, myConnection);
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
public void ExecuteSQL(string strSql)
{
OleDbConnection myConnection;
OleDbCommand myCommand;
myConnection = new OleDbConnection(GetConnStr());
myCommand = new OleDbCommand(strSql, myConnection);
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
#9
我的那个是单机版的,数据是从sql2000里来的,因为数据量很大,所以导入时间很长,需要一个比较好
解决方案,谢谢各位了
解决方案,谢谢各位了