.Net Windows 应用程序使用 OLEDB 和 Access
Posted
技术标签:
【中文标题】.Net Windows 应用程序使用 OLEDB 和 Access【英文标题】:.Net Windows application using OLEDB with Access 【发布时间】:2011-02-25 12:41:21 【问题描述】:我正在尝试在 Windows 应用程序中使用 OLEDB 在 MS Access DB 中插入一条记录。
我收到一个错误“sql 语句末尾缺少分号”,sql insert 语句中没有语法错误。
我的代码
这是我正在使用的插入语句:
INSERT INTO Student
VALUES ('SRI-10-101','001','guru','30/05/2010 12:00:00 AM','','','','','','','600028','','','','','','','30/05/2010 11:25:44 AM','');
连同代码:
conn = this.GetConnection();// which returns Connection object
tran = conn.BeginTransaction();
OleDbCommand cmd = conn.CreateCommand();
cmd.Connection = conn;
cmd.CommandText = strQuery;// Insert statement
cmd.CommandType = CommandType.Text;
cmd.Transaction = tran;
cmd.ExecuteNonQuery();
tran.Commit();
我用分号试过了,还是报错;
谢谢
【问题讨论】:
你能发布你的代码吗?没有它,将很难诊断您的问题。 dude SQL 语句或您正在使用的命令在哪里? 请您发布 SQL 语句和/或代码 sn-p 吗? 所以您实际上可能在 sql 语句的末尾缺少了一个分号 :) 发布您的代码,以便每个人都可以查看并找到错误:) 问题是您在 sql 语句的末尾缺少一个分号。应该很容易修复:-) 【参考方案1】:您似乎想将您的 strQuery 设置为您的插入语句的值。
根据您的代码,它应该如下所示:
string strQuery = "INSERT INTO Student
VALUES ('SRI-10-101','001','guru','30/05/2010 12:00:00 AM','','','','','','','600028','','','','','','','30/05/2010 11:25:44 AM','')";
与往常一样,您应该验证您已连接并默认使用正确的数据库(或在您的表名之前明确指定它(即 MyAwesomeDatabase.dbo.Student)。
最后看起来您还试图将数字作为字符数组('001' 或 '600028')插入,如果数据库中的字段是数字类型,那么 SQL 更喜欢不带引号分隔符的数字。
祝你好运!
【讨论】:
以上是关于.Net Windows 应用程序使用 OLEDB 和 Access的主要内容,如果未能解决你的问题,请参考以下文章
SqlClient/OLEDB 驱动程序的连接字符串,如 jdbc:jtds 驱动程序?
microsoft.ace.oledb.12.0 提供程序未注册
Microsoft.Jet.OLEDB.4.0' 提供程序未在本地计算机上注册
在 MS Access 中保存来自 VB.Net Windows 窗体的数据时出现错误 System.Data.OleDb.OleDbException:“标准表达式中的数据类型不匹配”。