2013-08-25 66 views
0

我得到這個錯誤,當我想嘗試檢查數據庫中是否有可用性用戶名時,錯誤說:「輸入字符串格式不正確」。檢查用戶名可用性錯誤

下面是代碼:中指出

private void CheckUsername() 
{ 
OleDbConnection conn = new OleDbConnection(); 

conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\Archives\Projects\Program\Sell System\Sell System\App_Data\db1.accdb"; 

conn.Open(); 

OleDbCommand cmd = new OleDbCommand("SELECT [Username] FROM [Member], conn); 

cmd.Parameters.Add("Username", System.Data.OleDb.OleDbType.VarChar); 
cmd.Parameters["Username"].Value = this.textBox1.Text; 

int count = Convert.ToInt32(cmd.ExecuteScalar()); 

if (count != 0) 
{ 
System.Media.SoundPlayer sound = new System.Media.SoundPlayer(@"C:\Windows\Media\Windows Notify.wav"); 
sound.Play(); 
MessageBox.Show("Username already exists! Please use another username", "Warning"); 
} 

else 
{ 
System.Media.SoundPlayer sound = new System.Media.SoundPlayer(@"C:\Windows\Media\Windows Notify.wav"); 
sound.Play(); 
MessageBox.Show("Username is not exists!", "Congratulations"); 
} 
} 

錯誤:int count = Convert.ToInt32(cmd.ExecuteScalar());和錯誤說:「輸入字符串是格式不正確」

提前感謝!

+0

請開始使用參數化查詢。這種方法是一個等待發生的sql注入災難 – TGH

+0

用戶名是一個整數嗎? – dcaswell

+0

@TGH:謝謝,我會做的! – Reinhardt

回答

2

那麼首先我想給你在查詢中使用的參數,第二小費,我覺得你的意思是在你的SQL寫COUNT()

OleDbCommand cmd = new OleDbCommand("SELECT COUNT([Username]) FROM [Member] WHERE [Username] = ?", conn); 
cmd.Parameters.Add(textBox1.Text); 
+1

解決了。謝謝! – Reinhardt

+0

@Fuhans,很高興聽到這個消息,哥們,祝你好運:) –