簡體   English   中英

注冊表單Visual Studio中的SQL Server數據庫問題

[英]Issue with SQL Server database in Registration form Visual Studio

這是我的代碼:

 private void button1_Click(object sender, EventArgs e)
 {
            SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Dido\Documents\DataCars.mdf;Integrated Security=True;Connect Timeout=30");
            SqlCommand cmd = new SqlCommand("insert into Login values('" + textBox1.Text + "','" + textBox2.Text + "')", con);

            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();

            if (!String.IsNullOrEmpty(textBox1.Text) || !String.IsNullOrEmpty(textBox2.Text))
            {
                MessageBox.Show("Your registration was successfull!");
                Login frm1 = new Login();
                Global.GlobalVar = textBox1.Text;
                frm1.Show();
                this.Hide();
            }
            else
            {
                MessageBox.Show("Please insert some text...");
            }
        }

當我嘗試使用用戶名和密碼注冊用戶時-表示成功,但是數據庫中唯一添加的內容是空行。 當我只單擊“注冊”按鈕而未編寫任何內容時,整個過程就會崩潰,並且會出現此錯誤:

違反主鍵約束'PK_ Login _536C85E5BD4FE4C6'。 無法在對象“ dbo.Login”中插入重復密鑰。 重復的鍵值為()。

問題:您僅檢查null和Empty,但不檢查Whitespace

解決方案:您還需要檢查Whitespace 如果使用String.IsNullOrWhiteSPace(),它將檢查Null,Empty和Whitespace。

嘗試這個:

if(!String.IsNullOrWhiteSpace(textBox1.Text) || !String.IsNullOrWhiteSpace(textBox2.Text))

建議:

確認INSERT是否成功的最佳方法是檢查ExecuteNonQuery()方法的return值。

int Status=cmd.ExecuteNonQuery();
if(STatus>0)
MessageBox.Show("Your registration was successfull!");
else
MessageBox.Show("Please insert some text...");

完整的代碼:

private void button1_Click(object sender, EventArgs e)
{
     if(!String.IsNullOrWhiteSpace(textBox1.Text) || !String.IsNullOrWhiteSpace(textBox2.Text))
     {
        SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Dido\Documents\DataCars.mdf;Integrated Security=True;Connect Timeout=30");
        SqlCommand cmd = new SqlCommand("insert into Login values('" + textBox1.Text + "','" + textBox2.Text + "')", con);

        con.Open();
        int Status=cmd.ExecuteNonQuery();
        con.Close();
        if(Status>0)
        {
            MessageBox.Show("Your registration was successfull!");
            Login frm1 = new Login();
            Global.GlobalVar = textBox1.Text;
            frm1.Show();
            this.Hide();
        }
        else
        {
            MessageBox.Show("no records updated!");
        }
      }
      else
      {
            MessageBox.Show("Please insert some text...");
      }
}

暫無
暫無

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

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