c# 判断oracle数据库是否存在某表

privatevoidbutton2_Click(objectsender,EventArgse){OracleConnectionorclConn=GetOrclCon... private void button2_Click(object sender, EventArgs e)
{
OracleConnection orclConn = GetOrclConn();
int num=0;
string tableName = comboBox2.Text + comboBox1.Text + "年";
string sql = "select count(*) into num from USER_TABLES where Table_Name ='" + tableName + "'";
OracleCommand cmd = new OracleCommand(sql, orclConn);
if ( num > 0)
{
MessageBox.Show(comboBox1.Text + "年" + comboBox2.Text + "已经存在");
}
else
{
MessageBox.Show(comboBox1.Text + "年" + comboBox2.Text + "不存在,是否新建表");
}
}
我oracle中肯定已经存在了这表,但是num的值一直都是0,是不是我得sql语句写错了?但sql语句在pl/sql里运行都是好使的。
展开
 我来答
badkano
推荐于2016-12-04 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885359
团长

向TA提问 私信TA
展开全部
你表名输入的时候得大写,要不就

select count(*) from USER_TABLES where Table_Name = upper('" + tableName + "')

因为USER_TABLES里的表名严格区分大小写,而USER_TABLES里表名都是以大写形式存在的
追问
string ConnectionString = "(CONNECT_DATA=(SERVICE_NAME=orcl)));User ID=orcl;Password=orcl";
谢谢,这是我数据库的连接,还有,我得表名是汉字,不涉及到大小写。有字数限制,数据库连接就没写全
追答
数据库连接里,第一个左括号你写错了吧

你用的是中文写法吧,换成英文那种
zh857872
2013-10-13 · TA获得超过1415个赞
知道小有建树答主
回答量:426
采纳率:100%
帮助的人:299万
展开全部
楼主,我感觉问题出在你的SQL上:
string sql = "select count(*) into num from USER_TABLES where Table_Name ='" + tableName + "'";

num放在sql是应该是无效的。

建议你把sql改为:
string sql = "select count(*) from USER_TABLES where Table_Name ='" + tableName + "'";

然后再将查询的结果赋值给num。

这样百分百是正确的。

有问题欢迎提问,满意请采纳!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kingboyf4
2013-10-13 · TA获得超过283个赞
知道小有建树答主
回答量:201
采纳率:100%
帮助的人:238万
展开全部
首先要确保你plsql和代码,使用的是同一个user访问的。
追问
是同一个啊
追答
badkano说的对,ORACLE默认的数据库名都是大写的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式