导出操作很简单的,用DataSet.
关于access表操作可以参考以往的帖子(好像思归答过).
关于access表操作可以参考以往的帖子(好像思归答过).
解决方案 »
- richtextbox鼠标选择总是很别扭
- 在DLL文件中有定义这种的变量: int I2C_position; 我如何在C#中引用呢?
- 如何学习C#
- 关于数据的完整性及安全性,大家来讨论啊
- 谁会用C#写把视频截取图片的程序,最好能有个Demo(只有70分了,全部奉上)
- 怎样在 .NET 中调用非托管的 DLL?我想使用 RICHEDIT50W 这个高版本的 RichEdit 控件,添加引用后,都是接口,有什么方法调用?
- (高分,在线等)一个CDO.MessageClass,一个X509Certificate,如何用这个X509Certificate签名和加密CDO.MessageClass。
- 关于C#调用C dll的问题
- 请问一下大家的vs.net2003的版本号!
- 我怎么不能add web reference! 帮忙看看!
- 关于路径问题!
- 初学c#的问题!
public string JoinString(string table1,string table2,string[] ProjectAttributes, string JoinAttribute)
{
string temp="";
for(int i=0;i<ProjectAttributes.Length;i++)
{
temp+=ProjectAttributes[i];
if(i!=ProjectAttributes.Length-1)
temp+=",";
}
return "select "+temp+" from "+table1+","+table2+" where "+table1+"."+JoinAttribute+"="+table2+"."+JoinAttribute; } //slocation:执行查询的机器
//dlocation:存放结果的机器
//在slocation计算机上执行QueryString后将结果传到dlocation计算机上,并建立临时表存储结果
//返回:dlocation上的结果临时表名
public string CreateTempTable(string slocation,string dlocation,string QueryString)
{
int sindex,dindex;
sindex=GetServerIndex(slocation);
dindex=GetServerIndex(dlocation); string tablename=((DbServer)DbServerList[dindex]).CreateTempTable(slocation,QueryString);
return tablename;
} //将水平划分的两个记录集合在一起
public DataSet HMergeDataSet(DataSet ds1,DataSet ds2)
{
DataSet NewDs=new DataSet();
DataTable NewTable=ds1.Tables["Result"].Copy();
NewDs.Tables.Add(NewTable); DataRow NewRow;
for(int i=0;i<ds2.Tables["Result"].Rows.Count;i++)
{
NewRow=ds2.Tables["Result"].Rows[i];
NewDs.Tables["Result"].Rows.Add(NewRow.ItemArray);
}
return NewDs;
} //将水平划分的两个临时表合在一起,返回结果表的表名
public string HMergeTable(string table1,string table2)
{
if(Conn.State==ConnectionState.Closed)Conn.Open();
DataSet ds1,ds2,ds3;
ds1=Query(this.ServerId,"select * from "+table1);
ds2=Query(this.ServerId,"select * from "+table2);
ds3=HMergeDataSet(ds1,ds2);
return CreateTempTable(ds3); } public bool Insert(string CommandString)
{
bool flag;
if(Conn.State==ConnectionState.Closed)Conn.Open();
OleDbCommand myInsertCmd = new OleDbCommand(CommandString,Conn);
try
{
if(myInsertCmd.ExecuteNonQuery()>0)flag=true;
else flag=false;
} finally
{
Conn.Close();
}
return flag;
} public bool Delete(string CommandString)
{
bool flag;
if(Conn.State==ConnectionState.Closed)Conn.Open();
OleDbCommand myDeleteCmd = new OleDbCommand(CommandString,Conn);
try
{
if(myDeleteCmd.ExecuteNonQuery()>0)flag=true;
else flag=false;
} finally
{
Conn.Close();
}
return flag;
} public bool CreateTable(string CommandString)
{
bool flag;
if(Conn.State==ConnectionState.Closed)Conn.Open();
OleDbCommand myCreateCmd = new OleDbCommand(CommandString,Conn);
try
{
if(myCreateCmd.ExecuteNonQuery()>0)flag=true;
else flag=false;
} finally
{
Conn.Close();
}
return flag;
} public bool DropTable(string CommandString)
{
bool flag;
if(Conn.State==ConnectionState.Closed)Conn.Open();
OleDbCommand myCmd = new OleDbCommand(CommandString,Conn);
try
{
if(myCmd.ExecuteNonQuery()>0)flag=true;
else flag=false;
} finally
{
Conn.Close();
}
return flag;
} public bool UpdateTable(string CommandString)
{
bool flag;
if(Conn.State==ConnectionState.Closed)Conn.Open();
OleDbCommand myUpdateCmd = new OleDbCommand(CommandString,Conn);
try
{
if(myUpdateCmd.ExecuteNonQuery()>0)flag=true;
else flag=false;
} finally
{
Conn.Close();
}
return flag;
} public bool ExecuteNonQuery(string location,string CommandString)
{
bool flag;
try
{
if(location==this.ServerId)
{
if(Conn.State==ConnectionState.Closed)Conn.Open();
OleDbCommand myUpdateCmd = new OleDbCommand(CommandString,Conn);
if(myUpdateCmd.ExecuteNonQuery()>0)flag=true;
else flag=false;
}
else
{
int index=GetServerIndex(location);
flag=((DbServer)DbServerList[index]).ExecuteNonQuery(location,CommandString);
}
}
finally
{
Conn.Close();
}
return flag;
} //创建临时表
//参数:ds(记录集)
//返回:临时表名temp+n
public string CreateTempTable(DataSet ds)
{
//读出当前临时表序号
if(Conn.State==ConnectionState.Closed)Conn.Open();
DataSet myds;
myds=Query(this.ServerId,"select tid from myconfig where id='1'"); int tempid=(int)myds.Tables["Result"].Rows[0]["tid"];
tempid++;
string TableName="temp"+tempid.ToString();
UpdateTable("UPDATE myconfig SET tid="+tempid.ToString()+" WHERE (id='1')"); string myString=""; DataColumn myColumn;
for(int i=0;i<ds.Tables["Result"].Columns.Count;i++)
{
myColumn=ds.Tables["Result"].Columns[i];
myString+=myColumn.ColumnName+" "+TypeConvert(myColumn.DataType)+" null";
if(i!=ds.Tables["Result"].Columns.Count-1)
myString+=",";
}
CreateTable("CREATE TABLE "+TableName+" ("+myString+")"); DataSet NewDS=new DataSet();
OleDbCommand myAccessDataSetCmd = new OleDbCommand("select * from "+TableName,Conn);
OleDbDataAdapter myadapter=new OleDbDataAdapter();
myadapter.SelectCommand=myAccessDataSetCmd;
OleDbCommandBuilder myCB = new OleDbCommandBuilder(myadapter);
myadapter.Fill(NewDS,TableName);
DataRow NewRow;
for(int i=0;i<ds.Tables["Result"].Rows.Count;i++)
{
NewRow=ds.Tables["Result"].Rows[i];
NewDS.Tables[TableName].Rows.Add(NewRow.ItemArray);
}
myadapter.Update(NewDS,TableName);
return TableName;
} //计算机location上查询结果在本地建立临时表
public string CreateTempTable(string location,string QueryString)
{
string tablename;
DataSet ds=Query(location,QueryString);
tablename=CreateTempTable(ds);
return tablename;
} private string TypeConvert(Type myDataType)
{
string myOleDbType="";
switch(myDataType.FullName)
{
case "System.String":
myOleDbType="text";
break;
case "System.Boolean":
myOleDbType="Bit";
break;
case "System.Double":
case "System.Single":
myOleDbType="Double";
break;
case "System.DateTime":
myOleDbType="Date";
break;
default:
myOleDbType="Integer";
break;
}
return myOleDbType;
} }
}