发布网友 发布时间:2024-10-19 00:50
共4个回答
热心网友 时间:2天前
你的dr是DataReader,又不是dataset,哪来的tables,应该是
OleDbConnection conn = new OleDbConnection(connectionString);
OleDbCommand cmd = new OleDbCommand("Select * from 土壤参数表 ", conn);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
dr.Fill(ds);
for (int i = 0; i < 10; i++)
{
x = dr.Tables[0].rows[i][3].ToString();
热心网友 时间:2天前
你的dr里面也就读出一个datatable。直接
datatable dt=new datatable()
dt.load(dr);
for(int i=0;i<dt.rows.count;i++) //这里要循环dt,不然取出来的数据没有10行,那下面访问会出错的
{
x = dt.rows[i][3].ToString(); 这里的Tables报错!
y1 = dt.rows[i][1].ToString();
y2 =dt.rows[i][2].ToString();
list1.Add(x, y1);
list2.Add(x, y2);
}
热心网友 时间:2天前
OleDbDataReader 有Table吗? 你完全用错了! 你如果用Table 就用DataAdapter 填充 DataSet 用DataSet的Table 去读取数据!
热心网友 时间:2天前
你的方法用错了
不必使用 OleDbDataReader dr = cmd.ExecuteReader();
应该使用断开式
OleDbConnection conn = new OleDbConnection(connectionString);
定义SqlDataAdapter sqlda = new SqlDataAdapter(sql语句, 连接对象);
定义 DataSet ds1 = new DataSet();
sqlda.Fill(ds1);
你遍历ds1.table[0]才可以。