小弟新学,做了个简单的登陆界面,运行时出现错误,请帮忙解决。
protected void Button1_Click(object sender, EventArgs e)
{
if (this.TextBox2.Text != "")
{
if (this.TextBox1.Text != "")
{
string sql;
sql =string.Format( "select * from User where Name='" + this.TextBox2.Text.Trim()+ "' and PassWord='" + this.TextBox1.Text.Trim() + "'");
try
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["巡检系统数据库ConnectionString"].ConnectionString);
conn.Open();
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.Connection = conn;
int state=Convert.ToInt32(cmd.ExecuteScalar());
if(state==0||state>1)
{
this.Label3.Text="用户不存在,请检测用户名和密码是否正确!";
}
else
{
this.Label3.Text="登录成功!";
}
conn.Close();
}
catch (Exception ex)
{
throw new Exception(ex.ToString());
}
}
else
{
this.Label3.Text = "请输入密码!";
}
}
else
{
this.Label3.Text = "请选择用户!";
}
}
}
运行程序,页面可以打开,输入用户名和密码后,点确定,提示如下
“/巡检系统”应用程序中的服务器错误。
--------------------------------------------------------------------------------
System.Data.SqlClient.SqlException: 关键字 'User' 附近有语法错误。
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
在 System.Data.SqlClient.SqlDataReader.get_MetaData()
在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
在 System.Data.SqlClient.SqlCommand.ExecuteScalar()
在 Login.Button1_Click(Object sender, EventArgs e)
这个是什么意思呀?
------解决方案--------------------------------------------------------
User可能是SQLSERVER内部使用的关键字,改成:
sql =string.Format( "select * from [User] where Name='" + this.TextBox2.Text.Trim()+ "' and PassWord='" + this.TextBox1.Text.Trim() + "'");
试试。
------解决方案--------------------------------------------------------
肿么回事?多了个+