将参数从文本框传递到sql语句字符串-单引号(')杀死了我

问题描述 投票:0回答:1

将文本添加到cpr_txtbx,name_txtbx和address_txtbx之后,我将它们转换为要在我的语句字符串中使用的参数。我正在使用的MySQL服务器需要语法:“插入人员(类型,cpr,名称,地址)” VALUES('cpr','名称','地址')”(是,单引号),我正在撕开头发,试图找出此处的语法。

我的按钮现在看起来像这样(我知道这是错误的):

        private void add_btn_Click(object sender, RoutedEventArgs e)
    {
        string statement = "INSERT INTO people (type, cpr, name, address)" +
            "VALUES('citizen', ':cpr', ':name', ':address')";
        this.AUD(statement, 0);
        add_btn.IsEnabled = false;
        edit_btn.IsEnabled = true;
        delete_btn.IsEnabled = true;
    }

澳元为:

        private void AUD(string statement, int state)
    {
        string msg = "";
        MySqlCommand cmd = conn.CreateCommand();
        cmd.CommandText = statement;
        cmd.CommandType = CommandType.Text;

        switch (state)
        {
            case 0:
                msg = "Borger tilføjet.";
                cmd.Parameters.Add("cpr", MySqlDbType.Text, 10).Value = cpr_txtbx.Text;
                cmd.Parameters.Add("name", MySqlDbType.Text).Value = name_txtbx.Text;
                cmd.Parameters.Add("address", MySqlDbType.Text).Value = address_txtbx.Text;
                break;
            case 1:
                msg = "Borger modificeret.";
                cmd.Parameters.Add("address", MySqlDbType.Text).Value = address_txtbx.Text;
                break;
            case 2:
                msg = "Borger slettet.";
                cmd.Parameters.Add("cpr", MySqlDbType.Text, 10).Value = cpr_txtbx.Text;
                break;
        }
        try
        {
            int n = cmd.ExecuteNonQuery();
            if ( n > 0 )
            {
                MessageBox.Show(msg);
                this.updateDataGrid();
            }
        }
        catch(MySqlException ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

我正在关注的教程在这里:https://www.youtube.com/watch?v=NiGsgctfiYM

这是我无法工作的唯一内容,因此,非常感谢您的帮助:)

c# mysql wpf syntax
1个回答
0
投票

错误:

string statement = "INSERT INTO people (type, cpr, name, address)" + "VALUES('citizen', ':cpr', ':name', ':address')";

右:

string statement = "INSERT INTO people (type, cpr, name, address)" + "VALUES('citizen', :cpr, :name, :address)";

© www.soinside.com 2019 - 2024. All rights reserved.