C#中的SQL IF EXISTS语句 [英] SQL IF EXISTS statement in C#

查看:444
本文介绍了C#中的SQL IF EXISTS语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下是代码:

the following is the code:

OleDbConnection database;

string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=PCAN.mdb";
database = new OleDbConnection(connectionString);
database.Open();

string query = @

"IF EXISTS (SELECT * FROM VEHICLE_SPEED)
 BEGIN
 INSERT INTO VEHICLE_SPEED (SPD, SPEED_VALUE) VALUES (@SPD, @SPEED_VALUE)   
 END
 ELSE 
 BEGIN
 CREATE TABLE VEHICLE_SPEED (SPD INT, SPEED_VALUE NVARCHAR(10))   
 INSERT INTO VEHICLE_SPEED (SPD, SPEED_VALUE) VALUES (@SPD, @SPEED_VALUE)
 END";
 
 int number = 0;
 OleDbCommand SQLQuery2 = new OleDbCommand(query, database);
 // ... other parameters
 SQLQuery2.Parameters.AddWithValue("@SPD", number++);
 SQLQuery2.Parameters.AddWithValue("@SPEED_VALUE", txtVehSpd.Text);
 SQLQuery2.ExecuteNonQuery();





不知何故,有一个错误无效的SQL语句;预期'删除',' INSERT','PROCEDURE','SELECT'或'UPDATE'。当代码运行时。



任何数据库程序员,请帮助。谢谢!



somehow, there is an error "Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'." when the code run.

Any database programmers, pls help. thanks!

推荐答案

MS Access数据库引擎(Jet.OleDb.4.0)不支持这样的语句!



您必须使用 OleDbConnection.GetSchema方法(字符串) [ ^ ]

示例:检查数据库中是否存在表或字段 [ ^ ]


嗨pohcb_sonic,



如果EXISTS 检查表中是否存在记录集。查看代码,如果条件返回,则创建一个表。我认为你应该更换你的

Hi pohcb_sonic,

IF EXISTS checks for the existence of recordset from your table. Looking at your code, you are creating a table if your condition returns falls. I think you should replace your
IF EXISTS (SELECT * FROM VEHICLE_SPEED)



with


with

IF OBJECT_ID ('VEHICLE_SPEED') IS NOT NULL





检查对象是否存在。



谢谢。



[评论]请,使用正确的格式[/ Comment]


这篇关于C#中的SQL IF EXISTS语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆