【问题标题】:.Net Windows application using OLEDB with Access.Net Windows 应用程序使用 OLEDB 和 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 语句的末尾缺少一个分号。应该很容易修复:-)

标签: c# .net windows ms-access


【解决方案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 更喜欢不带引号分隔符的数字。

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    相关资源
    最近更新 更多