C#中的SQL IF EXISTS语句 [英] SQL IF EXISTS statement in C#
本文介绍了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屋!
查看全文