c# 连接db2数据库,然后查询填充dataset问题。 急。。
全球车行网 2012-07-26 01:51:44 急:::::::::
全部代码放上:
这个是调用和填充部分:
OleDbCommand cmd = new OleDbCommand();
DbDataAdapter dbDataAdapter = new OleDbDataAdapter();
//DataSet dataset1 = new DataSet();
//这里调用的是第二段代码:
dbDataAdapter = DataConn.newAdapter(sql);
//if (dbDataAdapter != null) dbDataAdapter.SelectCommand = cmd;
DataSet ds = new DataSet();
if (dbDataAdapter != null)
//执行到填充的时候报错了。错误信息如何:“IBMDADB2.DB2COPY1”失败,没有可用的错误消息,结果代码: //DB_E_OBJECTOPEN(0x80040E05)。
dbDataAdapter.Fill(ds);
获取dataadapter部分:
public static DbDataAdapter newAdapter(String sql)
{
switch (DBType)
{
case mDBType.dbDB2:
return new OleDbDataAdapter(sql, (OleDbConnection)getConnection());
case mDBType.dbOracle:
return new OracleDataAdapter(sql, (OracleConnection)getConnection());
case mDBType.dbSQLServer:
return new SqlDataAdapter(sql, (SqlConnection)getConnection());
default:
return null;
}
}
获取数据库连接部分:
public static DbConnection getConnection()
{
string provider = null;
DbConnection conn = null;
switch (DBType)
{
case mDBType.dbDB2:
provider = "Provider=IBMDADB2.DB2COPY1;Password="+ strPWD +";User ID="+ strUser +";Data Source=" +strDbName ;
conn = new OleDbConnection(provider);
break;
case mDBType.dbOracle:
provider = "Data Source=" + strDbName + ";Password = " + strPWD + "; User ID = " + strUser + ";";
conn = new OracleConnection(provider);
break;
case mDBType.dbSQLServer:
provider = "server=" + strServer + ";Initial Catalog=" + strDbName + ";User Id=" + strUser + ";Password=" + strPWD + ";Max Pool Size = 5;Connect Timeout=5";
conn = new SqlConnection(provider);
break;
default:
return conn;
}
if (conn != null)
{
conn.Open();
}
return conn;
}