这是个向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)
{ .........
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)
{ .........
da.Update()里的参数是数据行,不是数据集吧
另外
下面的代码你写错了。
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);
}