我有个问题,我写了一个类,里面有公有方法来操作数据库,
我有个问题,我写了一个类,里面有公有方法来操作数据库,我用的是动态数组 ,我要添加一行记录时,为什么动态数组的长度比
数据库里面的长度少1 呢?
/连接数据库填充数据员并设置主键
public void chushihua()
{
try
{
con=new SqlConnection(@"Data Source=(local);Integrated Security=SSPI;Initial Catalog="+dataName);
adpter=new SqlDataAdapter("select * from "+tableName,con);
builder=new SqlCommandBuilder(adpter);
ds=new DataSet();
adpter.MissingSchemaAction=MissingSchemaAction.AddWithKey;
adpter.Fill(ds,tableName);
keyName=ds.Tables[tableName].PrimaryKey.GetValue(0).ToString();
// glyName=ds.Tables[tableName].Rows[0]["Name"].ToString();
// glyPssd=ds.Tables[tableName].Rows[0]["Pssd"].ToString();
filed=new string[ds.Tables[tableName].Columns.Count-1];
for(int i=0,j=0;j<ds.Tables[tableName].Columns.Count;i++,j++)
if(ds.Tables[tableName].Columns[j].ColumnName!=keyName)
filed[i]=ds.Tables[tableName].Columns[j].ColumnName;
else
i--;
}
catch(Exception ee)
{
}
}
//加载一个数据库
public void getjiazai()
{
this.adpter.Fill(this.ds,tableName);
}
//返回一个数据源
public DataSet getdataset()
{
return ds;
}
//数据库的添加
public void insertNew(string snumber,params string[] paramstr)//动态数组
{
ds.RejectChanges();
DataRow thisrow=ds.Tables[tableName].NewRow();
thisrow[keyName]=snumber;
for(int i=1;i<paramstr.Length;i++)
thisrow[filed[i]]=paramstr[i];
ds.Tables[tableName].Rows.Add(thisrow);
adpter.Update(ds,tableName);
ds.AcceptChanges();
}