当前位置:编程学习 > C#/ASP.NET >>

菜鸟高分求助!!!!!!!!!!!!!!!!

我有一个user表,里面有name、password、email这三个字段,现在弄一个注册页面,后台代码如下
using System;
using System.Configuration;
using System.Data;

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

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

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        System.Data.SqlClient.SqlConnection conn = new SqlConnection();
        conn.ConnectionString = ConfigurationManager.ConnectionStrings["userConnectionString"].ConnectionString;
        conn.Open();
       SqlCommand Cmd=new SqlCommand();
        Cmd.Connection=conn;
        Cmd.CommandText="select[name]form[User]";
        SqlDataReader dr = Cmd.ExecuteReader();
        while(dr.Read())
        {
            if(dr.GetString(0)==TextBox1.Text)
            {
                Label3.Text=TextBox1+"已经存在!";
                conn.Close();
                return;
            }
        }
        conn.Close();
        string SqlStr;
        SqlStr="Insertinto[User]([name][password],[email])values(@name,@password,@email)";
        Cmd.CommandText=SqlStr;
        SqlParameter para1=new SqlParameter("@name",SqlDbType.VarChar,50);
        para1.Value=TextBox1.Text;
        Cmd.Parameters.Add(para1);

         SqlParameter para2=new SqlParameter("@password",SqlDbType.VarChar,50);
        para1.Value=TextBox2.Text;
        Cmd.Parameters.Add(para2);

         SqlParameter para3=new SqlParameter("@email",SqlDbType.VarChar,50);
        para1.Value=TextBox3.Text;
        Cmd.Parameters.Add(para3);
        try
        {
            conn.Open();
            Cmd.ExecuteNonQuery();
            Label3.Text="恭喜你,注册成功";
        }
        catch(SqlException sqlException)
        {Response.Write(sqlException.Message);}

        finally
        {
            if(conn.State==ConnectionState.Open)
                conn.Close();
        }

    }
}
运行出错,找了半天找不到,到底错在那里
--------------------编程问答-------------------- 单步调试,报什么错。 --------------------编程问答-------------------- 调试结果是,当输入用户名和密码,还有邮箱,点击注册按钮之后
出现如下错误提示
'User' 附近有语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

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

源错误: 


行 26:         Cmd.Connection=conn;
行 27:         Cmd.CommandText="select[name]form[User]";
行 28:         SqlDataReader dr = Cmd.ExecuteReader();
行 29:         while(dr.Read())
行 30:         {
 

源文件: d:\Documents\Visual Studio 2008\WebSites\邮箱验证\Default.aspx.cs    行: 28 

堆栈跟踪: 


[SqlException (0x80131904): 'User' 附近有语法错误。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +946986
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +821638
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +186
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1932
   System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +31
   System.Data.SqlClient.SqlDataReader.get_MetaData() +62
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +297
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +1005
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +132
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
   System.Data.SqlClient.SqlCommand.ExecuteReader() +84
   _Default.Button1_Click(Object sender, EventArgs e) in d:\Documents\Visual Studio 2008\WebSites\邮箱验证\Default.aspx.cs:28
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5087

 


--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.1882; ASP.NET 版本:2.0.50727.1879  --------------------编程问答-------------------- 调试结果是,当输入用户名和密码,还有邮箱,点击注册按钮之后
出现如下错误提示
'User' 附近有语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

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

源错误: 


行 26:         Cmd.Connection=conn;
行 27:         Cmd.CommandText="select[name]form[User]";
行 28:         SqlDataReader dr = Cmd.ExecuteReader();
行 29:         while(dr.Read())
行 30:         {
 

源文件: d:\Documents\Visual Studio 2008\WebSites\邮箱验证\Default.aspx.cs    行: 28 

堆栈跟踪: 


[SqlException (0x80131904): 'User' 附近有语法错误。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +946986
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +821638
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +186
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1932
   System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +31
   System.Data.SqlClient.SqlDataReader.get_MetaData() +62
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +297
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +1005
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +132
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
   System.Data.SqlClient.SqlCommand.ExecuteReader() +84
   _Default.Button1_Click(Object sender, EventArgs e) in d:\Documents\Visual Studio 2008\WebSites\邮箱验证\Default.aspx.cs:28
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5087

 


--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.1882; ASP.NET 版本:2.0.50727.1879  --------------------编程问答-------------------- Cmd.CommandText="select[name]form[User]";

form —> from --------------------编程问答-------------------- 这个sql语句之间最好要有空格,select [name] from [User]。 --------------------编程问答-------------------- 没细看  sql 语句问题 尽量少用关键字 --------------------编程问答-------------------- SqlStr="Insert  into[User]([name][password],[email]) values (@name,@password,@email)";
insertinto中间要有空格 --------------------编程问答-------------------- 天啊
引用 4 楼  的回复:
Cmd.CommandText="select[name]form[User]";

form —> from
--------------------编程问答-------------------- 楼主,XX附近有语法错误。 一般都是SQL语法错误,可以把sql语句提取出来放在sql server里面一看就知道了 --------------------编程问答--------------------
引用 5 楼  的回复:
这个sql语句之间最好要有空格,select [name] from [User]。


看错误提示,很容易知道是SQL语法错
回5楼
不是最好,是一定要,没空格肯定是错的 --------------------编程问答-------------------- 不行啊,我加了空格还是出现这样的错误
邮箱验证”应用程序中的服务器错误。
--------------------------------------------------------------------------------

对象名 'User' 无效。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.SqlClient.SqlException: 对象名 'User' 无效。

源错误: 


行 26:         Cmd.Connection=conn;
行 27:         Cmd.CommandText="select [name] from [User]";
行 28:         SqlDataReader dr = Cmd.ExecuteReader();
行 29:         while(dr.Read())
行 30:         {
 

源文件: d:\Documents\Visual Studio 2008\WebSites\邮箱验证\Default.aspx.cs    行: 28  --------------------编程问答-------------------- select [name] from [User]
你这句在数据库上能执行吗?
--------------------编程问答-------------------- 你是user表?还是User表啊?

select [name] from [user] ?????
select [name] from [User] ?????
--------------------编程问答-------------------- sql语句的问题 把sql语句贴到sql查询里面测试去。 --------------------编程问答-------------------- 应该是sql语句出了问题。。 --------------------编程问答-------------------- SqlStr="Insertinto[User]([name][password],[email])values(@name,@password,@email)";
明显缺少空格啊,肯定出错。

SQL语句到数据库执行一下。

这问题基本上可以确定是SQL语句的问题! --------------------编程问答-------------------- SQL语句每个关键字之间用空格隔开! --------------------编程问答-------------------- select [name] from [User]
你把这条语句放到数据库里执行一下,看报错不 --------------------编程问答-------------------- 垃圾代码 错误百出 设断点一步一步调试去 --------------------编程问答-------------------- 哦,谢谢各位,我在测试一下 --------------------编程问答-------------------- 把from写成form了!我有事我也习惯这样! --------------------编程问答-------------------- 呵呵,我明白了,感谢大家的发言,我犯糊涂了,我那个是user数据库,里面的表是xingkong1表,那怪查询语句出错了的。还有关于sql查询语句,那里可以不需要空格"select[name]from[xingkong1]"; --------------------编程问答-------------------- 呵呵,我明白了,感谢大家的发言,我犯糊涂了,我那个是user数据库,里面的表是xingkong1表,那怪查询语句出错了的。还有关于sql查询语句,那里可以不需要空格"select[name]from[xingkong1]"; --------------------编程问答-------------------- 是不是 ''的问题。sql语句要写好啊
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,