这是个向ListView中添加数据的方法,但执行到da.Update(ds);后就转去了Catch,太急人了!
public static int Insert(string tableName,string[] data)
{
string ole = "select * from "+tableName;
OleDbDataAdapter da = new OleDbDataAdapter(ole,con);
try
{
if(con.State != ConnectionState.Open)
{
con.Open();
}
OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds);
DataRow dr = ds.Tables[0].NewRow();
for(int i=0;i<=data.Length-1;i++)
{
dr[i+1]=data[i];  //避开自动编号的ID字段
}

ds.Tables[0].Rows.Add(dr);
da.Update(ds);
return 0;
} catch(Exception ex)

{ .........

解决方案 »

  1.   

    da.Update(ds)??
    da.Update()里的参数是数据行,不是数据集吧
      

  2.   

    catch 什么异常,异常信息是什么?
    另外
    下面的代码你写错了。
    DataRow dr = ds.Tables[0].NewRow();
    for(int i=0;i<=data.Length-1;i++)
    {
        dr[i+1]=data[i];  //避开自动编号的ID字段
    }
    ds.Tables[0].Rows.Add(dr);
    应该改为
    DataTable dt =  ds.Tables[0];
    DataRow dr;
    for(int i=0;i<=data.Length-1;i++)
    {
        dr = dt.NewRow();
        dr =data[i];  //避开自动编号的ID字段
        dt.Rows.Add(dr);
    }
      

  3.   

    换成da.Update(dr);是不对的,因为dr定义的是DataRow,估计肯定是Update出了问题。