我正在創建一個WinForm註冊表單,並最近切換了我的整個代碼以刪除我正在獲取的SQL注入。我現在可以註冊用戶以存儲在我的數據庫中,但我無法使用該信息登錄。由於致命錯誤,WinForm不接受來自MySql的用戶輸入
string constring = "datasource=127.0.0.1;port=3306;username=root;password=welcome";
string Query = "insert into userdatabase.users (userid, email, passone, passtwo, lastname, firstname) values(@userid,@email,@passone,@passtwo,@lastname,@firstname)";
MySqlConnection conDatabase = new MySqlConnection(constring);
MySqlCommand cmd = new MySqlCommand(Query, conDatabase);
cmd.Parameters.AddWithValue("userid", this.userid_txt.Text);
cmd.Parameters.AddWithValue("passone", this.passone_txt.Text);
try
{
conDatabase.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("Welcome to iDSTEM!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
這是對我的登錄按鈕的代碼,我知道AddWithValue是不是需要存在,但是這就是我現在有存儲的值,想知道我應該將其更改爲。
這是我的代碼,它將我的數據存儲到MySql中。
string constring = "datasource=127.0.0.1;port=3306;username=root;password=welcome";
string Query = "insert into userdatabase.users (userid, email, passone, passtwo, lastname, firstname) values(@userid,@email,@passone,@passtwo,@lastname,@firstname)";
MySqlConnection conDataBase = new MySqlConnection(constring);
MySqlCommand cmd = new MySqlCommand(Query, conDataBase);
cmd.Parameters.AddWithValue("userid", this.userid_txt.Text);
cmd.Parameters.AddWithValue("email", this.email_txt.Text);
cmd.Parameters.AddWithValue("passone", this.passone_txt.Text);
cmd.Parameters.AddWithValue("passtwo", this.passtwo_txt.Text);
cmd.Parameters.AddWithValue("lastname", this.lastname_txt.Text);
cmd.Parameters.AddWithValue("firstname", this.firstname_txt.Text);
try {
conDataBase.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("Welcome to iDSTEM!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
當我運行在日誌中我得到命令執行過程中遇到
致命錯誤
預先感謝任何幫助,或者你能夠給我提示。
我基於註冊表的登錄關閉,所以感謝指出俯視,我仍然認爲我在哪裏'cmd.Paramters.AddWithValue(「@ userid」,this.userid_txt.Text);'是不是應該給我AddWithValue任何想法? @Manish Dalal – Bendlino
@Bendlino:我認爲AddWithValue可以[http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection.addwithvalue%28v=vs.110%29.aspx]另外,似乎使用帶參數名稱的@對於mySQL是可選的(但在參數名稱之前有一個更好的做法@) –