有人可以解释我的程序有什么问题吗? 只是想制作一个简单的登录程序,因为我是初学者,但坚持这个错误。
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Umer\Documents\Data.mdf;Integrated Security=True;Connect Timeout=30;");
SqlDataAdapter sda = new SqlDataAdapter("Select Count (*) From dbo.Table where Username='" + textBox1.Text + "'and password ='" + textBox2.Text + "'", con);
DataTable dt = new DataTable();
sda.Fill(dt);
问题出在sda.Fill(dt);
。它说:
发生SqlException关键字'Table'
附近的语法不正确
它说SqlException发生关键字'Table'附近的语法不正确 这是我的代码的图片。希望我会得到答案。感谢
答案 0 :(得分:2)
单个cuote与'和'之间缺少空间。关键字
... textBox1.Text +"'和...
BTW,为了避免SQL注入(以及包含引号的密码中的应用程序错误),您还应该使用Mike Schmidt建议的参数。
答案 1 :(得分:1)
这假设您在引用的sql数据库中有正确的表。 表名是“表”,它有两列“用户名”和“密码”
评论
你应该打破参数,以便于阅读。
String ConnectionString = @"DataSource=LocalDB)\v11.0;AttachDbFilename=C:\Users\Umer\Documents\Data.mdf;Integrated Security=True;Connect Timeout=30;";
String QueryString = @"Select Count (*) From dbo.Table where Username= @Username and Password = @Password";
SqlParameter[] Parameters = {new SqlParameter("Username",textBox1.text)
,new SqlParameter("Password",textBox2.text)};
SqlConnection sqlConnection = new SqlConnection(ConnectionString);
SqlCommand sqlCommand = new SqlCommand(QueryString, sqlConnection);
sqlCommand.CommandType = System.Data.CommandType.Text;
sqlCommand.Parameters.AddRange(Parameters);
int nCount;
if (int.TryParse(sqlCommand.ExecuteScalar().ToString(), out nCount))
{
//nCount has valid value
}
else
{
//nCount has invalid value
}