2013-08-25 62 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,很高兴听到这个消息,哥们,祝你好运:) –