关于数据导出问题?求大虾帮忙,在线等~~~~~~~~~~~

时间:2021-10-06 12:17:22
有两个系统,一个B/S的,一个是C/S的,C/S的是单机版的,B/S用的数据库是sql2000,C/S是Access

C#里我要把SQL2000的数据导出到Access里,不可以直接导入,因为是异地的,对方也没有装sql2000。

我现在的方法是现将数据以sql语句的方式导出到记事本里,然后通过程序执行记事本中的sql语句将数据导入到Access里,
但是执行效率太低了,不知道有没有什么好的方法


请大虾指导。

9 个解决方案

#1


异地的也可以直接导入,远程连接SqlServer

#2


用两个循环,先读出原内容(可放在数据集中),
再遍历存入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放到异地的计算机上就可以了

#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();
    }

#9


我的那个是单机版的,数据是从sql2000里来的,因为数据量很大,所以导入时间很长,需要一个比较好
解决方案,谢谢各位了

#1


异地的也可以直接导入,远程连接SqlServer

#2


用两个循环,先读出原内容(可放在数据集中),
再遍历存入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放到异地的计算机上就可以了

#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();
    }

#9


我的那个是单机版的,数据是从sql2000里来的,因为数据量很大,所以导入时间很长,需要一个比较好
解决方案,谢谢各位了