c#操作oracle数据库,ExecuteReader()
我想把一张表table1里,按照某一列(actdatetime)的值的大小顺序排列,然后把另表table2中一列(busindex)按照对应table1表里的produc...
我想把一张表table1里,按照某一列(actdatetime)的值的大小顺序排列,然后把另表table2中一列(busindex)按照对应table1表里的productid这列进行标号由小到大1-n;代码如下:
OracleTransaction myTrans2 = conn.BeginTransaction();
OracleCommand cmd2 = conn.CreateCommand();
cmd2.Transaction = myTrans2;
cmd2.CommandText = "Select * From table1 Order By to_char(actdatetime,'yyyy-mm-dd hh24:mi:ss')";//按照这张表内actdatetime这列大小升序排列
OracleDataReader rs1 = cmd2.ExecuteReader();
int length = 0;
while (rs1.Read())
{
length ++;
}
int i = 1;//我用这个办法获得select所作用的行数
for (rs1.Read(); (i - 1) <= length; i++)//我按对read()的理解这么写的,想每次读一行
{
string issueDetail = rs1.IsDBNull(0) ? "" : rs1.GetValue (4).ToString ();//判断是否表中第5列值为0
cmd2.CommandText = "update table2 set BUSINDEX = '" + i.ToString() + "' where productid = '" + issueDetail + "'";//sql语句,对busindex这列进行编号,按照product这列。
cmd2.ExecuteNonQuery();
myTrans2.Commit();
}
rs1.Close();
运行结果:没有可取的行或者列。length我看过是对的,sql语句在数据库里运行过也能得到正确的结果.table1第列是number(10,0)类型,想用getvalue。这段代码求帮忙改改,真心谢谢了! 展开
OracleTransaction myTrans2 = conn.BeginTransaction();
OracleCommand cmd2 = conn.CreateCommand();
cmd2.Transaction = myTrans2;
cmd2.CommandText = "Select * From table1 Order By to_char(actdatetime,'yyyy-mm-dd hh24:mi:ss')";//按照这张表内actdatetime这列大小升序排列
OracleDataReader rs1 = cmd2.ExecuteReader();
int length = 0;
while (rs1.Read())
{
length ++;
}
int i = 1;//我用这个办法获得select所作用的行数
for (rs1.Read(); (i - 1) <= length; i++)//我按对read()的理解这么写的,想每次读一行
{
string issueDetail = rs1.IsDBNull(0) ? "" : rs1.GetValue (4).ToString ();//判断是否表中第5列值为0
cmd2.CommandText = "update table2 set BUSINDEX = '" + i.ToString() + "' where productid = '" + issueDetail + "'";//sql语句,对busindex这列进行编号,按照product这列。
cmd2.ExecuteNonQuery();
myTrans2.Commit();
}
rs1.Close();
运行结果:没有可取的行或者列。length我看过是对的,sql语句在数据库里运行过也能得到正确的结果.table1第列是number(10,0)类型,想用getvalue。这段代码求帮忙改改,真心谢谢了! 展开
1个回答
展开全部
贴出相关表结构和示例数据,以便讨论
为什么要用Transaction
说说你的思路
更多追问追答
追问
追答
上面你说按照actdatetime排列,可是图中好像没看到
“按照对应table1表里的productid这列进行标号由小到大1-n”,“通过语句update由相应的id,对表二busindex这列进行从1-n的编号”,都是什么意思,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询