c# - 无法执行插入、删除或更新?

标签 c# visual-studio-2012

我的查询似乎是正确的,但为什么会发生这种情况?

enter image description here

        OleDbConnection con = new OleDbConnection();

        con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Sparrow vivek\Documents\Billing.accdb";
        con.Open();
        DateTime a = Convert.ToDateTime(label2.Text);
        String query = "INSERT INTO balancesheet (BillNumber,CusName,Date,Amount) values (?,?,?,?)";
        OleDbCommand cmd = new OleDbCommand(query, con);
        cmd.Parameters.AddWithValue("?",label3.Text);
        cmd.Parameters.AddWithValue("?", label4.Text);
        cmd.Parameters.AddWithValue("?", a.ToString("yyyy-MM-dd"));
        cmd.Parameters.AddWithValue("?", label6.Text);
        cmd.ExecuteNonQuery();
        con.Close();

最佳答案

您的查询包含 reserved keyword : 日期。要使用它,您需要在该名称周围使用方括号

String query = "INSERT INTO balancesheet (BillNumber,CusName,[Date],Amount) values (?,?,?,?)";

强烈建议避免使用这些名称。如果仍然可能,请尽快更改该名称。

现在让我们检查一下 AddWithValue 列表。在此方法中,参数的数据类型由您传递的值自动确定。您将每个值传递给字符串类型的参数集合。但您的数据库字段可能不需要字符串作为值。例如日期,金额似乎需要日期时间和数字

cmd.Parameters.AddWithValue("?",label3.Text);
cmd.Parameters.AddWithValue("?", label4.Text);
cmd.Parameters.AddWithValue("?", a); 
cmd.Parameters.AddWithValue("?", Convert.ToDecimal(label6.Text));

关于c# - 无法执行插入、删除或更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27489119/

相关文章:

c# - RemoteCertificateNotAvailable - 身份验证期间未通过根证书

c# - LINQ xml 查找节点返回 null

c# - C#'s equivalent of Java' s 通配符

c# - Object.GetType() 可以返回 null 吗?

visual-studio-2010 - 将IronScheme集成到Visual Studio 2010中

c# - 对于 Foundation/ZURB,随机 "data-section-content"是做什么用的?

c# - Protocol Buffer 与 JSON 或 BSON

c++ - VS2012 nmake 使用 v110_xp 工具集?

jquery - 使用 div 显示在两个选项卡/表格之间切换

tfs - 使用托管 TFS 将变更集编号转换为版本信息