我们在编程的时候总是要向数据库中插入数据,以下是我向数据库(Oracle)中插入数据用的函数
我感觉写得很不好,以为是我把向(sqlserver)中插入数据用的函数改变过来的,由于Oracle中没有
自增字段,所以函数效率很低,请大家写出你向数据库(最好是Oracle)中插入数据的函数!!! public void insertcmd(string keyname,string tab,String[] colum,String[] values)
{
if(colum.Length!=values.Length)
{
throw new System.Exception("The colums number must equal the values number!");
}
else
{
try
{
this.ConOpen();
string sql="select * from " + tab;
string sqlmax="select max("+keyname+") from " + tab;
countflag=this.CommandScalar("select count(*) from " + tab);
if(countflag==0)
{
tempvalu=this.GetIdDataReader(sql);
}
else
{
tempvalu=this.CommandScalar(sqlmax);
}
OracleDataAdapter da=new OracleDataAdapter(sql,cnn);
OracleCommandBuilder MyCB=new OracleCommandBuilder(da);
DataSet ds=new DataSet();
da.MissingSchemaAction=MissingSchemaAction.AddWithKey;
da.Fill(ds,tab);
DataRow myrow=ds.Tables[tab].NewRow();
myrow[keyname]=Convert.ToString(tempvalu+1); for(int i=0;i<=colum.Length-1;i++)
{
myrow[colum[i]]=values[i];
}
ds.Tables[tab].Rows.Add(myrow);
da.Update(ds,tab); ds=null;
MyCB=null;
da=null;
}
catch(OracleException ex)
{
throw new System.Exception(ex.Message,ex);
}
finally
{
this.ConClose();
}
}
}
我感觉写得很不好,以为是我把向(sqlserver)中插入数据用的函数改变过来的,由于Oracle中没有
自增字段,所以函数效率很低,请大家写出你向数据库(最好是Oracle)中插入数据的函数!!! public void insertcmd(string keyname,string tab,String[] colum,String[] values)
{
if(colum.Length!=values.Length)
{
throw new System.Exception("The colums number must equal the values number!");
}
else
{
try
{
this.ConOpen();
string sql="select * from " + tab;
string sqlmax="select max("+keyname+") from " + tab;
countflag=this.CommandScalar("select count(*) from " + tab);
if(countflag==0)
{
tempvalu=this.GetIdDataReader(sql);
}
else
{
tempvalu=this.CommandScalar(sqlmax);
}
OracleDataAdapter da=new OracleDataAdapter(sql,cnn);
OracleCommandBuilder MyCB=new OracleCommandBuilder(da);
DataSet ds=new DataSet();
da.MissingSchemaAction=MissingSchemaAction.AddWithKey;
da.Fill(ds,tab);
DataRow myrow=ds.Tables[tab].NewRow();
myrow[keyname]=Convert.ToString(tempvalu+1); for(int i=0;i<=colum.Length-1;i++)
{
myrow[colum[i]]=values[i];
}
ds.Tables[tab].Rows.Add(myrow);
da.Update(ds,tab); ds=null;
MyCB=null;
da=null;
}
catch(OracleException ex)
{
throw new System.Exception(ex.Message,ex);
}
finally
{
this.ConClose();
}
}
}
解决方案 »
- <关于C#读取EXCEL的问题>
- 如何将ACCESS的OLE对象字段存储的BMP或是jpg图象显示出来
- winform编程——做过ini配置文件创建文件、添加配置项,修改配置项,删除配置项
- C# windows程序中,如果实现窗体间数据动态更新?
- 借人气问:后台数据库文件格式
- 关于FileListBox托动里面的项的一些问题?
- e.Location动态数字显示
- nat p2p udp 端口问题
- 请问可以只遍厉treeview的有限层节点吗?
- 如何用正则获取指定符号内的内容
- 使用Enterprise Library时的一些问题
- 多个byte[]数组都存有各自的数据.我怎么把它保存起来(内存中)想用哪个的时候再从内存中取出来用.
dr["id"]="jfjldk";
dt.Add(dr);
设备器update
比如
OledbCommand oc=new OledbCommand("insert into table (a,b) values (aa,bb)",conn);
oc.ExquetNonquery();