成批导出记录问题!!
dapha 2004-04-02 10:41:05 在以前用VB时,只要一条SQL语句就能全部导出,刚刚学习C#,对ADO.Net还不熟悉,就采用了此笨办法来导,但是为什么导不出来,是不是我有地方写错,大家帮忙看看啊~~~~谢了~
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
using OutData.Common;
namespace OutData.SQLDA
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class exportdata
{
// OleDbCommand insertCommand;
// OleDbDataAdapter daCommand;
private SqlConnection sqlconn;
private OleDbConnection connAccess;
private string _LogID="@LogID";
private string _OperatorID="@OperatorID";
private string LogID_PARM ="LogID";
private string OperatorID_PARM ="OperatorID";
private string SQL_Insert_AREA="INSERT INTO Sys_Log11(LogID,OperatorID) values(@LogID,@OperatorID)";
public exportdata()
{
//
// TODO: 在此处添加构造函数逻辑
//
sqlconn= new SqlConnection(GetSqlConnString());
sqlconn.Open();
connAccess=new OleDbConnection(this.GetACCESSConnString());
connAccess.Open();
}
public string GetSqlConnString()
{
string connstr;
connstr = "server=192.168.1.156;database=jewelry;uid=jewelry;pwd=258258";
return connstr;
}
public string GetACCESSConnString()
{
string strconn;
strconn= "Provider=Microsoft.Jet.OLEDB.4.0;Data source=f:\\db1.mdb";
return strconn;
}
private DataSet Get_DataSet()
{//源表数据
string strsql;
DataSet ds=new DataSet();
strsql="select * from Sys_Log";
SqlDataAdapter adapter= new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(strsql,this.sqlconn);
adapter.Fill(ds,"Sys_Log");
adapter.Dispose();
return ds;
}
public void OutSQL()
{
//OleDbDataAdapter myDA=new OleDbDataAdapter("select * from Sys_Log",connAccess);
SqlDataAdapter adapter=new SqlDataAdapter();
SqlDataAdapter adapter1=new SqlDataAdapter("",this.sqlconn);
adapter.SelectCommand = new SqlCommand("select * from Sys_Log11",this.sqlconn);
DataSet accessDS=new DataSet();
adapter.Fill(accessDS,"Sys_Log");
accessDS=Get_DataSet().Copy();
adapter1.InsertCommand =this.GetInsertCommand();
adapter1.Update(accessDS,"Sys_Log");
if (accessDS.HasErrors)
{
System.Console.Write("更新失败!" );
}
else
{
accessDS.AcceptChanges();
System.Console.Write("数据记录为:" + accessDS.Tables["Sys_Log"].Rows.Count);
}
//CopyDataSet(GetDataSet());
}
private SqlCommand GetInsertCommand()
{
SqlCommand updateCommand = new SqlCommand("UpdateArea",sqlconn);
//updateCommand.CommandType = CommandType.StoredProcedure;
updateCommand.CommandText=SQL_Insert_AREA;
SqlParameterCollection sqlParams = updateCommand.Parameters;
//@LogID,@OperatorID,@ActionDO,@OptDate,@LogType
sqlParams.Add(new SqlParameter(this._LogID,SqlDbType.VarChar,50));
sqlParams.Add(new SqlParameter(this._OperatorID,SqlDbType.VarChar,50));
sqlParams[_LogID].SourceColumn =this.LogID_PARM;
sqlParams[_OperatorID].SourceColumn =OperatorID_PARM;
return updateCommand;
}
}
}
System.Console.Write("数据记录为:" + accessDS.Tables["Sys_Log"].Rows.Count);
输入出的结果是:
数据记录为:3650程序“[2080] OutData.exe”已退出,返回值为 0 (0x0)。