我有以下代码来检查用户:
private void button1_Click(object sender, EventArgs e)
{
string ss = "SElECT * FROM 123 WHERE u=@USERNAME";
using (SqlCeConnection cn = new SqlCeConnection(@"Data Source=|DataDirectory|\123.sdf"))
{
try
{
SqlCeCommand selectCommand = new SqlCeCommand(ss, cn);
cn.Open();
selectCommand.Parameters.AddWithValue("@USERNAME", textBox1.Text);
int result = (int) selectCommand.ExecuteScalar();
if (result > 0)
MessageBox.Show("logged in");
else
MessageBox.Show("user not found");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
cn.Close();
}
}
}
运行时出现此错误:
为什么我收到此错误?
答案 0 :(得分:1)
string ss = "SElECT * FROM [123] WHERE u=@USERNAME";
答案 1 :(得分:1)
更改您的SQL语句,如下所示
string ss = "SElECT Count(*) FROM [123] WHERE u=@USERNAME";
ExecuteScalar将为您提供第一行第一列的值。如果它不是整数值,则在转换为int时会出现异常。在你的sql中包含Count(*)
,它将为你提供符合你条件的记录数量,同时也可以投射。请注意,我也为表名添加了[]。
答案 2 :(得分:0)
FROM 123
不正确。你需要这里的表名。