我发现用OracleDataAdapter.Update()能同时更新多条记录 但好象不能更新多主键的记录而且定义了primaryKey也不行 请问各位大侠有什么好方法吗?我是往组步骤表中插入记录的
数据库结构中grpno和stepno为主键
当前数据库中有二条记录 我在中间插入一条记录 并将他们的stepno由1-3重新设置一遍部分关键代码:
myDataset = myData.getds("select * from red_c_grpstep where grp_no = "+Session["Grpno"].ToString());
DataTable table;
table = myDataset.Tables[0];
table.TableName="red_c_grpstep";
DataRow row;
row = table.NewRow();
string strstepno="";
strstepno = myData.getItem("select to_char(nvl(max(step_no),0)+1) from red_c_grpstep where grp_no = "+Session["Grpno"].ToString());row["STEP_NAME"] = this.txtstepname.Text.ToString().Trim();table.Rows.InsertAt(row,1);for(int i=1;i<=table.Rows.Count;i++)
{
table.Rows[i-1]["GRP_NO"] = Session["Grpno"].ToString();
table.Rows[i-1]["STEP_NO"] = i;
}editDb2(myDataset,"select * from red_c_grpstep","red_c_grpstep");
public int editDb2(DataSet myDataSet,string strSql,string strTable)
{
DataSet newData = new DataSet();
OracleDataAdapter myAda = new OracleDataAdapter(strSql,this.myConnection);
OracleCommandBuilder myBuilder = new OracleCommandBuilder(myAda);
myAda.Fill(newData,strTable);
newData = myDataSet;
//newData.Tables[0].PrimaryKey=new DataColumn[]{newData.Tables[0].Columns["GRP_NO"],newData.Tables[0].Columns["STEP_NO"]};
int intCount = myAda.Update(newData,strTable);
return intCount; }最好不要挨条记录更新,因为后面还有许多地方要用到这种情况
数据库结构中grpno和stepno为主键
当前数据库中有二条记录 我在中间插入一条记录 并将他们的stepno由1-3重新设置一遍部分关键代码:
myDataset = myData.getds("select * from red_c_grpstep where grp_no = "+Session["Grpno"].ToString());
DataTable table;
table = myDataset.Tables[0];
table.TableName="red_c_grpstep";
DataRow row;
row = table.NewRow();
string strstepno="";
strstepno = myData.getItem("select to_char(nvl(max(step_no),0)+1) from red_c_grpstep where grp_no = "+Session["Grpno"].ToString());row["STEP_NAME"] = this.txtstepname.Text.ToString().Trim();table.Rows.InsertAt(row,1);for(int i=1;i<=table.Rows.Count;i++)
{
table.Rows[i-1]["GRP_NO"] = Session["Grpno"].ToString();
table.Rows[i-1]["STEP_NO"] = i;
}editDb2(myDataset,"select * from red_c_grpstep","red_c_grpstep");
public int editDb2(DataSet myDataSet,string strSql,string strTable)
{
DataSet newData = new DataSet();
OracleDataAdapter myAda = new OracleDataAdapter(strSql,this.myConnection);
OracleCommandBuilder myBuilder = new OracleCommandBuilder(myAda);
myAda.Fill(newData,strTable);
newData = myDataSet;
//newData.Tables[0].PrimaryKey=new DataColumn[]{newData.Tables[0].Columns["GRP_NO"],newData.Tables[0].Columns["STEP_NO"]};
int intCount = myAda.Update(newData,strTable);
return intCount; }最好不要挨条记录更新,因为后面还有许多地方要用到这种情况
解决方案 »
- asp.net. 进程关闭的求解.
- vs2010在不运行的情况下,在界面上点击鼠标没反应的原因
- asp.net 为什么文本框控件内容为空时,按钮的click事件才执行,郁闷
- 如何把从XML中取出的内容放到自定义的方法中??
- textbox 宽度怎么设置??
- JS Date转换问题 如何吧Tue Mar 15 00:00:00 UTC+0800 2011转换成2012-1-1
- 基于web的全文检索平台的设计与实现
- 想买《ASP.NET 1.0高级编程》,大家说这本书怎么样?是用c#还是vb.net写的?
- 寻找微软dotnet培训教材的pdf文件。。。。。。。。
- 在ASP中如何调用.exe文件?
- 如何清除动态生成的表格中的数据
- 关于用response.write转跳网页的问题
多条不行应该是还没有提交,所以数据增量还没有执行。oracle在其sql plus中写sql时,你就可以感觉到,
不提交一下,你删除的数据在其它地方去一看,竟然还在
多条不行应该是还没有提交,所以数据增量还没有执行。oracle在其sql plus中写sql时,你就可以感觉到,
不提交一下,你删除的数据在其它地方去一看,竟然还在