菜鸟高分求助!!!!!!!!!!!!!!!!
我有一个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中间要有空格 --------------------编程问答-------------------- 天啊
--------------------编程问答-------------------- 楼主,XX附近有语法错误。 一般都是SQL语法错误,可以把sql语句提取出来放在sql server里面一看就知道了 --------------------编程问答--------------------
看错误提示,很容易知道是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#