首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

ado.net 数据库总是连接不下

2012-12-21 
ado.net 数据库总是连接不上using Systemusing System.Datausing System.Configurationusing System.Co

ado.net 数据库总是连接不上

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
      

    }
    protected void btnLogin_Click(object sender, EventArgs e)
    {

        string name = this.txtName.Text; //得到登陆帐号
        string pwd = this.txtpwd.Text; //得到登陆密码
        SqlConnection con = new SqlConnection(); //连接数据库对象
        con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|Database.mdf;Integrated Security=True;User Instance=True";


        // 创建命令(SqlCommand)对象(cmd)
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con; // 指示命令发给哪个数据库
        cmd.CommandType = CommandType.Text; // 指示是什么类型的命令
        cmd.CommandText = "SELECT username,password FROM user WHERE username='" + txtName.Text + "' and  password='" + txtpwd.Text + "'"; 



        con.Open(); // 打开连接,准备接受命令
        SqlDataReader reader = cmd.ExecuteReader();
        //// Read方法开始读取数据,读到记录,则返回true,并指向下一条记录,否则返回false
        if (reader.Read())
        {
            con.Close();
            Response.Redirect("good.aspx");
        }
        else
        {
            con.Close();
            Response.Write("<script>alert('登录失败')</script>");
        }




    }


采用直接连接的方式, 数据库表名

 user
   |--username
    |--password


为什么老是有一个这样的提示,.


“/实训”应用程序中的服务器错误。
--------------------------------------------

关键字 'user' 附近有语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.SqlClient.SqlException: 关键字 'user' 附近有语法错误。

源错误: 


行 36: 
行 37:         con.Open(); 


行 38:         SqlDataReader reader = cmd.ExecuteReader();
行 39:       
行 40:         if (reader.Read())
 

源文件: e:\学习\asp.net实训\实训\Default.aspx.cs    行: 38 

堆栈跟踪: 


[SqlException (0x80131904): 关键字 'user' 附近有语法错误。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +109
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +57
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +207
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2423
   System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33
   System.Data.SqlClient.SqlDataReader.get_MetaData() +80
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +291
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +949
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +242
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +20
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +129
   System.Data.SqlClient.SqlCommand.ExecuteReader() +85
   _Default.btnLogin_Click(Object sender, EventArgs e) in e:\学习\asp.net实训\实训\Default.aspx.cs:38
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +78
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +100
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2863

 


--------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.5466; ASP.NET 版本:2.0.50727.5456 
[最优解释]
SELECT [username],[password] FROM [user] WHERE [username]='" + txtName.Text + "' and  [password]='" + txtpwd.Text + "'"; 

这些词是数据库的保留词,应该加上中括号
[其他解释]
因为  user是数据库关键字    改成这样[user]
------其他解决方案--------------------


谢谢两位大神

热点排行