注册信息不能录入到数据库中
大哥大姐们 帮我看下吧 这是一段用户注册的代码 自认为没有错误 可是 注册的信息 总是不能录入到数据库的表格中请问 是什么原因啊 为什么信息不能写入数据库呢
//
string constr = "Data Source=.;Initial Catalog=MyData;Integrated Security=True";
SqlConnection con = new SqlConnection(constr);
con.Open();
//
string UserName = TextBox1.Text;
string UserPwd = TextBox2.Text;
string UserId= TextBox4.Text;
string UserEmail = TextBox5.Text;
string sqlUserAdd = "insert into UserInfo(UserId,UserName, UserPwd,UserEmail) values('" + UserId + "','" + UserName + "','" + UserPwd + "','" + UserEmail + "')";
SqlCommand cmdUserAdd = new SqlCommand(sqlUserAdd, con);
cmdUserAdd.ExecuteNonQuery();
//页面转向
Response.Redirect("zhuceSuc.aspx");
--------------------编程问答-------------------- 没有执行sql语句 sqlUserAdd --------------------编程问答-------------------- 没有抛出异常吗? --------------------编程问答-------------------- 只对sqlUserAdd 进行了赋值 但是没用到sqlUserAdd 变量 --------------------编程问答-------------------- 代码不能这样写哦,数据库连接都没有关闭。 --------------------编程问答-------------------- ls的哥哥姐姐啊 我没看懂 能不能说的仔细点 我是菜鸟级的 --------------------编程问答-------------------- 没有抛出异常吗??
--------------------编程问答-------------------- 调试下看看是否执行了你写的那些代码啊,如果执行了会不会抛出异常,看下你的sql语句编写是否正确,比如如果UserID是int类型的话就不需要加单引号的。 --------------------编程问答-------------------- 这段代码你放哪里的??? --------------------编程问答-------------------- 都没有出现什么异常 就是填完信息后 点击按钮注册 然后页面刷新完 在去看数据库表 里面并没有填入的信息 注册没成功 么有录入进去
try
{
//...
}
catch (Exception e)
{
//...
}
这段代码是在BUTTOn 按钮中的 --------------------编程问答-------------------- 设个断点,得到你的SQL语句,,在查询分析器里执行一下!~~ --------------------编程问答-------------------- --------------------编程问答-------------------- 照理说你这样没什么问题的
没有插入数据,应该会抛出异常的
你可以跟踪调试一下,看是代码问题,
还是sql问题,你的sql'不规范,可以跟踪直接到数据库执行一下
另外直接完毕,注意关闭连接
--------------------编程问答-------------------- 另看看这段代码的事件触发了没有 --------------------编程问答-------------------- 1.Sql语句最好用String.Format书写这样明了一些:string sqlUserAdd = String.Format("insert into UserInfo(UserId,UserName, UserPwd,UserEmail) values('{0}','{1}','{2}','{3}')",UserId,UserName, UserPwd,UserEmail);
2.使用try
{
//...
}
catch (Exception e)
{
//...
}
但要抛出异常,否则你以后就会为这个小细节吃很多苦头
3.无论是什么流最后都要关闭
4.多使用断点查询错误
5.按你所说和我的推断(不一定正确):就是因为你没有关闭流造成的,因为insert语句它是事务性的,需要在执行完成以后就行提交。在.net的中提交可以通过Close()和事务的Commit实现,如果不提交,数据库是不会更新的。这个问题以前我在Java里遇见过,.net还没有,所以只是推测,你试一下!分析不一定正确,只希望对你有所帮助。 --------------------编程问答-------------------- 不怕大家嘲笑 我真不懂什么流关闭 怎么做
恩 还有 你们看这个 这个是可以运行的 和那个没什么区别 但是那个就是不行
protected void Button1_Click(object sender, EventArgs e)
{
string constr = "Data Source=.;Initial Catalog=web;Integrated Security=True";
SqlConnection con = new SqlConnection(constr);
con.Open();
string username = TextBox1.Text;
string userid = TextBox2.Text;
string userpwd = TextBox3.Text;
string userclass = TextBox5.Text;
string userpast = TextBox6.Text;
string sqluseradd = "insert into A_username(username,userid,userpwd,userclass,userpast)values('" + username + "','" + userid + "','" + userpwd + "','" + userclass + "','" + userpast + "')";
SqlCommand cmduseradd =new SqlCommand(sqluseradd,con);
cmduseradd.ExecuteNonQuery();
Response.Redirect("第二注册用户.aspx"); --------------------编程问答-------------------- 请检查你数据库字段有没有int类型的,
如果有的话,在拼接字符串的时候,数字类型的字段就不用加单引号
insert into A_username(username,userid,userpwd,userclass,userpast)values('" + username + "','" + userid + "','" + userpwd + "','" + userclass + "','" + userpast + "')"; --------------------编程问答-------------------- 检查一下你的userId 有没有设成标识列,这个是自动生成的不需要插入 --------------------编程问答-------------------- 检查数据库中对应的字段的类型和'"+ +"'有没有不同的。 --------------------编程问答-------------------- sql语句的问题。用参数传进去,不要拼接sql语句 --------------------编程问答-------------------- 在winXP下有没有打sqlSP4补丁啊?你看下你的1433端口有没有打开? --------------------编程问答-------------------- 没异常说明代码没问题,你把你的sql直接在server里运行看看 --------------------编程问答-------------------- 调试一下代码 跟踪
补充:.NET技术 , ASP.NET