none
登入程式的問題 private void button1_Click(object sender, EventArgs e) RRS feed

  • 問題

  • 下列是小弟的程式碼

    執行後錯誤訊息就停在有註解的那行

    可以麻煩大家幫我解答嗎

    謝謝!!

    private void button1_Click(object sender, EventArgs e) { using (SqlConnection con = new SqlConnection()) { con.ConnectionString = "Server=localhost;Initial Catalog=login;Integrated Security=True"; SqlCommand cmd = new SqlCommand("select count(*) from login where usname = @usname and uspws = @uspws", con); cmd.Parameters.AddWithValue("@usname", textuser); cmd.Parameters.AddWithValue("@uspws", textpws); con.Open(); int num = Convert.ToInt32(cmd.ExecuteScalar());//有問題的地方 con.Close(); if (num > 0) { frmmain fm = new frmmain(); fm.Show(); this.Hide(); } else { MessageBox.Show("帳號密碼錯誤"); this.textuser.Text = ""; this.textpws.Text = ""; } } }


    2012年3月9日 上午 05:13

解答

  • 兩個可能

    (1) 你的Initial Catalog=login  這邊有問題,資料庫的名稱要確認一下

    (2) 你的from login 這邊有問,資料表的名稱要確認一下

    • 已標示為解答 Dean_榮 2012年3月9日 上午 05:49
    2012年3月9日 上午 05:42

所有回覆

  • 既然有錯誤訊息, 發問時就應該把錯誤訊息一併列出.

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2012年3月9日 上午 05:22
    版主
  • 忘了貼了

    補上錯誤

    System.ArgumentException 未處理
      Message=物件型別 System.Windows.Forms.TextBox 與已知的管理提供者原始型別之間並無對應。

    2012年3月9日 上午 05:26
  • 你試試看把

    cmd.Parameters.AddWithValue("@usname", textuser);
                    cmd.Parameters.AddWithValue("@uspws", textpws);

    裡面的textuser改成textuser.text

    textpws改成textpws.text 

    應該就好了吧

    2012年3月9日 上午 05:34
  • 改了之後變成

    無效的物件名稱login

    是因為沒連到資料庫嗎?

    2012年3月9日 上午 05:40
  • 兩個可能

    (1) 你的Initial Catalog=login  這邊有問題,資料庫的名稱要確認一下

    (2) 你的from login 這邊有問,資料表的名稱要確認一下

    • 已標示為解答 Dean_榮 2012年3月9日 上午 05:49
    2012年3月9日 上午 05:42
  • 建議把連線字串資訊寫在Using(sqlconnection ) 外面,因為using他會幫你做open的動作

    你就不用裡面在open....做完之後他也會幫你把connection關掉哦

    2012年3月9日 上午 05:47
  • 謝謝GragonP的提醒

    確實是table名稱打錯了

    新手上路沒注意到@@

    謝謝!!

    2012年3月9日 上午 05:49