首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法更新access数据库引发的asp.net

无法更新access数据库引发的asp.net
EN

Stack Overflow用户
提问于 2018-05-25 23:55:34
回答 1查看 83关注 0票数 0

我的access数据库不会使用此代码进行更新。什么地方出问题了?我已经尝试了很多方法来更新我的access数据库,但都没有成功,请各位帮帮忙。

代码语言:javascript
复制
protected void Btnupdate_Click(object sender, EventArgs e)
    {
        foreach (RepeaterItem RI in rptEdit.Items)
        {
            Label id = RI.FindControl("Pid") as Label;
            TextBox prdname = RI.FindControl("prdname") as TextBox;
            TextBox prdprice = RI.FindControl("prdprice") as TextBox;
            TextBox prdshortdesc = RI.FindControl("prdshortdesc") as TextBox;
            TextBox prdtype = RI.FindControl("prdtype") as TextBox;
            TextBox prdbrand = RI.FindControl("prdbrand") as TextBox;

            int updated;
            string connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\Table.accdb";
            using (var conn = new OleDbConnection(connection))
            {
                conn.Open();
                string updSql = @"UPDATE ProductList SET
                    Pname = '" + prdname.Text + "' WHERE Pid = ?";
                using (var cmd = new OleDbCommand(updSql, conn))
                {
                    cmd.Parameters.Add("@Pname", OleDbType.VarChar).Value = prdname.Text;
                    updated = cmd.ExecuteNonQuery();
                    conn.Dispose();
                    conn.Close();
                }
            }
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-29 06:59:11

只需使用?SQL中的样式参数。

代码语言:javascript
复制
string sql = @"UPDATE ProductList SET Pname = ? WHERE Pid = ?";

然后,只需确保您在代码中添加参数的顺序与它们在SQL中出现的顺序相同。

代码语言:javascript
复制
cmd.Parameters.Add(prdName.Text);
cmd.Parameters.Add(int.Parse(id.Text));

您需要确保在C#中添加的变量的类型与DB中的类型匹配(就文本或数字而言)。然后可以根据需要适当地引用或不引用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50532972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档