c# 中对oracle数据库update时提示表名无效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 中对oracle数据库update时提示表名无效相关的知识,希望对你有一定的参考价值。
建立了两个窗体form1,form2,在form2初始化时接受一个form1的textbox参数,
然后用textbox.Text.Trim()的方式提取出里面的字符串,实际上它是一个表的名称
之后在使用oraclecommand来update这个表时,提示表名无效,请问高手这是怎么回事
代码:
public Form2(TextBox chuandi) ……
chuandi1 = chuandi.Text.Trim(); //chuandi1代表oracle中的一个表名
……(建立链接,dataset,dataadapter等代码)
string sql = "update table "+chuandi1+" set favorite=1 where songname='"+dataGridView1.SelectedRows[0].Cells[0].Value.ToString()+"'";
OracleCommand mark1 = new OracleCommand(sql,mycon);
mark1.ExecuteNonQuery(); //执行
就是调试到ExecuteNonQuery()时提示表名无效
首先保证连接的数据库没有错误,不要看的是一个数据库,时间连接串指向的是另一个数据库
然后debug一下,在执行sql前,看一下sql的具体值
如果没有发现问题,直接把sql语句放到数据库中执行一下(再次强调:注意程序连的数据库和你执行sql的数据库要一致),看有没有问题
oracle表的crud(增删改查)单表
参考技术A 1增加数据:insert into 表名>(属性1,属性2,属性3.,…)values(属性1对应的数据类型的值,属性2对应的数据类型 的 值,属性3对应的数据类型的值,…);
1.删除一行数据:delete from 表名>
where 满足的条件;
例子:delete table student
where snum = ‘2014101’;
2.删除数据从表截断
truncate table (表名);
3.删除表及表的所有数据:
drop table 表名>;
修改表:
update 表名 set 列1=表达式,列2=表达式2
where 列=表达式;
a…对所有列都修改
Update student set sage =sage+1;
b.修改指定的记录
Update sc set Grade=90 where Sno= ‘9521105’;
有关于查找
查询可以分为三种类型:单表查询,多表查询和子查询
这里主要讲的是单表查询
select 属性1,属性2,… from 表名
[where 检索条件]
[ order by 排序依据列]
[group by 分组依据列]
[ having 组提取条件]
1单表查询纵向查询
1.1查全表:select * from 表名
1.2查表的部分: select 查询的内容 from 表名 where 判断的条件
例: select ID,name from 表名 where sex=‘男’;
1.3使用别名:select id as 学号 from 表名;
1.4 计算 select cj~1.1 from 表名
2.单表查询横向查询
2.1 限制行数
select 属性1,属性2, from 表名 rownum<=n; n为查询的行数
2.2 模糊查询:
select 属性1,属性2,… from 表名 where like 属性=‘_()%’;
select 属性1,属性2,… from 表名 where like 属性=‘%()%’;
注释:括号里面是属性里面 某一个实例对象所拥有的;
2.3 消除重复行:
select distinct 属性 from 表名;
2.4 查询空值
select 属性1,属性2… from 表名 where 属性 is null;
2.5取值区间(连续取)
select 属性1,属性2…from 表名 where 属性 between A and B ;
2.6 取值区间(间断取)
select 属性1,属性2…from 表名 where 属性 in (’ ‘,’ ',…) ;
3.排序
order by 排序依据列
desc 降序排序
asc 升序排列
4.函数统计
主要有的统计函数有 max ,min , avg , count ,sum
4.1 使用这些统计函数
select max(cj),min(cj),sum(cj) ,avg(cj) from 表名>;
select max(cj),min(cj),sum(cj) ,avg(cj) from 表名> where 检索条件;
select 属性1,属性2,… max(cj),min(cj),sum(cj) ,avg(cj) from 表名> where 检索条件;
4.2 有关于分组 group by [分组条件]
区分 having 和 where
having 是接在分组后的
where 是接在分组前的
where 后面是不能接统计函数的
举例子:
select 属性1,属性2,… from 表名 group by 属性 having max(属性)>?;
select 属性1,属性2,… from 表名 where 属性>? group by 属性n ;
以上是关于c# 中对oracle数据库update时提示表名无效的主要内容,如果未能解决你的问题,请参考以下文章
Oracle编辑数据时提示:这些查询结果不可更新,请使用ROWI或者SELECT……FOR UPDATE获得可更新结果
Oracle DML(insert,update,delete)数据操纵语言
C# 用command.ExecuteNonQuery() 执行update语句界面卡死,也不报错!??使用的是oracle数据库