OleDb的C#更新错误 [英] C# Update error with OleDb

查看:52
本文介绍了OleDb的C#更新错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我是编程新手,已经开始了我的第一个C#项目(这是非常基础的),但是对于我遇到的错误,我只需要一点帮助.

我有一个C#前端和一个MS Access 2003后端(当我变得更高级时,我将使用SQL.)

当我尝试更新记录时,出现一条消息:查询表达式"ContactId ="中的语法错误{缺少运算符)

我的代码如下:

Hi all,

I am new to programming, and I have started my first C# project (which is very basic), but I just need a little help with an error I am getting.

I have a C# front end and a MS Access 2003 back end (I will use SQL when I get a little more advanced.)

When I try updating a record, I get a message saying: Syntax error {missing operator) in query expression ''ContactId =''

My code is as follows:

private void btnSave_Click(object sender, EventArgs e)
        {
            OleDbConnection conn = new OleDbConnection();
            conn.ConnectionString = "PROVIDER=Microsoft.Jet.OleDb.4.0;Data Source=C:\\Users\\Antoine\\Documents\\Visual Studio 2010\\Projects\\myProject\\imyProject\\bin\\Debug\\myProject.mdb";
           
            conn.Open();

            string strUpdate = "UPDATE Contact SET ContactLastName = ''" + txtLastName.Text + "'' WHERE ContactId = " + txtContactId.Text + "";

            OleDbCommand cmd = new OleDbCommand(strUpdate, conn);

            cmd.ExecuteNonQuery();

            MessageBox.Show("Record updated", "Contacts", MessageBoxButtons.OK);
        }


我知道这将是非常简单的事情,而且我敢肯定会有更有效的编码方法,但是我在学习中很有趣.

预先感谢您的帮助.

安东尼

[edit]已添加代码块-OriginalGriff [/edit]
[edit2]已纠正缩进-OriginalGriff [/edit2]


It will be something very simple, I know, and I''m sure there''s more efficient coding methods, but I''m having fun learning.

Thanks in advance for your help.

Antony

[edit]Code block added - OriginalGriff[/edit]
[edit2]Indentation corrected - OriginalGriff[/edit2]

推荐答案

尝试此操作
string strUpdate = "UPDATE Contact SET ContactLastName = ''" + txtLastName.Text + "'' WHERE ContactId = " + txtContactId.Text;

-验证ContactLastName,ContactId是否为有效格式
-请阅读此教程-http://msdn.microsoft.com/zh-cn/library/aa288436(v = vs.71.aspx
try this
string strUpdate = "UPDATE Contact SET ContactLastName = ''" + txtLastName.Text + "'' WHERE ContactId = " + txtContactId.Text;

- verify ContactLastName,ContactId is valid format
- Read this Tutorials - http://msdn.microsoft.com/en-us/library/aa288436(v=vs.71.aspx


好像ContactId不是(数字).检查表是否为String数据类型.
Seems like ContactId is not Numeric (Number) in the table. Check the table if it is String data type.


如果您的文本框中有有效的联系人ID,并且没有特殊字符,则UPDATE命令看起来正常字符-引起问题的一个空格就好了.我建议您还是使用参数化查询:它们更安全,并且使您的代码更易于阅读:
The UPDATE command looks ok, if there is a valid Contact ID in your text box, and no special characters - a single space is all it would take to cause a problem. I would suggest that you use Parametrized queries anyway: they are a lot safer, and make your code easier to read:
string strUpdate = "UPDATE Contact SET ContactLastName = @CLN WHERE ContactId = @CID";
OleDbCommand cmd = new OleDbCommand(strUpdate, conn);
cmd.Parameters.AddWithValue("@CLN", txtLastName.Text);
cmd.Parameters.AddWithValue("@CID", txtContactId.Text);


这很可能会消除您的错误!


This may well get rid of your error!


这篇关于OleDb的C#更新错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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