簡體   English   中英

使用C#將記錄插入MySQL數據庫

[英]Inserting record in to MySQL Database using C#

我目前正在使用C#WPF開發應用程序。 我正在嘗試將數據存儲到MySQL數據庫中。 下面是我的代碼。

 MySqlCommand cmd = new MySqlCommand("", conn);

                cmd.CommandText = "INSERT INTO BUG_REPORTS (bug_softwareID, bug_firstName, bug_lastName, bug_email, bug_description, bug_ip_addr, bug_dateReported) "
                    + "VALUES (@softwareID, @firstName, @lastName, @email, @description, @ip_addr, @dateReported)";

                cmd.Parameters.Add("@softwareID");
                cmd.Parameters.Add("@firstName");
                cmd.Parameters.Add("@lastName");
                cmd.Parameters.Add("@email");
                cmd.Parameters.Add("@description");
                cmd.Parameters.Add("@ip_addr");
                cmd.Parameters.Add("@dateReported");

                cmd.Parameters["@softwareID"].Value = softwareID;
                cmd.Parameters["@firstName"].Value = getFirstName();
                cmd.Parameters["@lastName"].Value = getLastName();
                cmd.Parameters["@email"].Value = getEmail();
                cmd.Parameters["@description"].Value = getDescription();
                cmd.Parameters["@ip_addr"].Value = ip_addr;
                cmd.Parameters["@dateReported"].Value = date;

                cmd.ExecuteNonQuery();

每當我嘗試插入一條記錄時,都會出現錯誤“僅存儲MySQLParameter對象。 我究竟做錯了什么。 我找到了文章,一切似乎都還可以。

感謝您的任何幫助,您可以提供

在您的參數中嘗試:

cmd.Parameters.Add(new OdbcParameter("@softwareID", softwareID));

其余的參數依此類推。

坦白地說,除非您不驗證文本並且擔心注入攻擊,否則構建內聯sql並執行不帶參數的命令可能很簡單。

我不確定它是否直接轉換,但是當我想用T-SQL插入或更新表時,我使用.ExecuteScalar()。

您是否嘗試過使用這種樣式。 它緊湊得多,可能可以解決您的問題。

cmd.Parameters.Add("@softwareID",softwareID);
cmd.Parameters.Add("@firstName",getFirstName());
cmd.Parameters.Add("@lastName",getLastName());
cmd.Parameters.Add("@email",getEmail());
cmd.Parameters.Add("@description",getDescription());
cmd.Parameters.Add("@ip_addr",ip_addr);
cmd.Parameters.Add("@dateReported",date);
cmd.ExecuteNonQuery();

具有MySql .NET連接器的參數標識符為'?'。

因此,您必須使用以下代碼:

cmd.CommandText = "INSERT INTO BUG_REPORTS (bug_softwareID, bug_firstName, bug_lastName, bug_email, bug_description, bug_ip_addr, bug_dateReported) "
                        + "VALUES (?softwareID, ?firstName, ?lastName, ?email, ?description, ?ip_addr, ?dateReported)";

cmd.Parameters.Add("?softwareID");
cmd.Parameters.Add("?firstName");
cmd.Parameters.Add("?lastName");
cmd.Parameters.Add("?email");
cmd.Parameters.Add("?description");
cmd.Parameters.Add("?ip_addr");
cmd.Parameters.Add("?dateReported");

cmd.Parameters["?softwareID"].Value = softwareID;
cmd.Parameters["?firstName"].Value = getFirstName();
cmd.Parameters["?lastName"].Value = getLastName();
cmd.Parameters["?email"].Value = getEmail();
cmd.Parameters["?description"].Value = getDescription();
cmd.Parameters["?ip_addr"].Value = ip_addr;
cmd.Parameters["?dateReported"].Value = date;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM