我是个新手.第1次做登陆界面.现在的问题是不知道怎么把注册资料写到数据库里.用的是sql server2000 .
string s = textBox1.Text.Trim();//用户名
string p = textBox2.Text.Trim();//密码
string p2 = textBox3.Text.Trim();//确认密码
string sql = "select name from name where name='" + s + "'";
string sql1 = "insert into name values('"+s+"', '"+p+"')";
SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=sa;database=My_user");
SqlCommand cmd = new SqlCommand(sql, cn);
SqlCommand cmd1 = new SqlCommand(sql1, cn);
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
MessageBox.Show("用户已存在");
}
else if (p != p2)
{
MessageBox.Show("确认密码错误");
}
else
{
MessageBox.Show("注册成功");
cmd1.ExecuteNonQuery();
}
dr.Close();
cn.Close();
再我最后点注册的时候会先显示注册成功,然后跳出错误.
请问问题出在哪.
string s = textBox1.Text.Trim();//用户名
string p = textBox2.Text.Trim();//密码
string p2 = textBox3.Text.Trim();//确认密码
string sql = "select name from name where name='" + s + "'";
string sql1 = "insert into name values('"+s+"', '"+p+"')";
SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=sa;database=My_user");
SqlCommand cmd = new SqlCommand(sql, cn);
SqlCommand cmd1 = new SqlCommand(sql1, cn);
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
MessageBox.Show("用户已存在");
}
else if (p != p2)
{
MessageBox.Show("确认密码错误");
}
else
{
MessageBox.Show("注册成功");
cmd1.ExecuteNonQuery();
}
dr.Close();
cn.Close();
再我最后点注册的时候会先显示注册成功,然后跳出错误.
请问问题出在哪.
解决方案 »
- 初学者求解答···急急急
- 个字符串里 即包含 ON 又包含 GTPU ,这个正则该怎么写?
- 有关dropdownlist赋值问题
- 我可能远程获得别人主板的序列号吗?
- 请教用DataGrid时怎么在后台获得一个数据库中的数据
- 不知道怎样使用该类替换。。。。。???还请帮忙!!!多谢!!
- 如何判断数据是否为整型在线急等
- 500分求助C#报表设计器
- :在winform中,在activated事件中加入"textBox1.focuts()"没有效果??
- Programming Microsoft Windows with C# 要150元,还是8折价。
- 关于JAVA转.NET的一系列问题
- csdn的回复时候按钮不可见的功能是怎么实现的
不知道问题出在哪啊
cmd1.ExecuteNonQuery();次序都不对执行都没执行先告诉人家注册成功了实际上cmd1肯定错了所以先弹出注册成功,然后报错两句肯定要换下位置
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
这样写对不对啊?
SqlCommand cmd = new SqlCommand(sql, cn);
SqlCommand cmd1 = new SqlCommand(sql1, cn);
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();bool IsExists=false;
while(dr.Read())
{
IsExists=true;
}
dr.close();
if (IsExists)
{
MessageBox.Show("用户已存在");
}
else
{
if (p != p2)
{
MessageBox.Show("确认密码错误");
}
else
{
cmd1.ExecuteNonQuery(); MessageBox.Show("注册成功");
}
}
cn.Close();
string p = textBox2.Text.Trim();//密码
string p2 = textBox3.Text.Trim();//确认密码
string sql = "select name from name where name='" + s + "'";
SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=sa;database=My_user");
SqlCommand cmd = new SqlCommand(sql, cn);
bool flag = false;
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
MessageBox.Show("用户已存在");
flag = true;
}
dr.Close();
cn.Close();if(flag == true)
{
sql = "insert into name values('"+s+"', '"+p+"')";
cmd = new SqlCommand(sql, cn);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
MessageBox.Show("注册成功");
}
不能用2个cmd的?
string sql1 = "insert into name values('"+s+"', '"+p+"')";
string sql1 = "insert into name('表里的用户字段','表里的密码字段') values('"+s+"', '"+p+"')";另外你的判断有问题,从下面开始说
else if (p != p2)
{
MessageBox.Show("确认密码错误");
}
else
{
MessageBox.Show("注册成功");
cmd1.ExecuteNonQuery();
}如果两次密码都一样了,直接就到注册成功这,但这时你并没执行cmd1.ExecuteNonQuery(),怎么会知道是成功还是失败?
判断是否成功失败你得先插入,通过返回值判断成功了还是失败了
try
{
if(Convert.ToInt32(cmd1.ExecuteNonQuery())>0)
{
MessageBox.Show("注册成功");
}
else
{
MessageBox.Show("注册失败");
}
}
catch(Exception Ex)
{
MessageBox.Show(Ex.ToString());
}
string p = textBox2.Text.Trim();//密码
string p2 = textBox3.Text.Trim();//确认密码
string sql = "select name from name where name='" + s + "'";
string sql1 = "insert into name values('"+s+"', '"+p+"')";
SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=sa;database=My_user");
SqlCommand cmd = new SqlCommand(sql, cn);
SqlCommand cmd1 = new SqlCommand(sql1, cn);
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();bool IsExists=false;
while(dr.Read())
{
IsExists=true;
}
dr.close();
if (IsExists)
{
MessageBox.Show("用户已存在");
}
else
{
if (p != p2)
{
MessageBox.Show("确认密码错误");
}
else
{
cmd1.ExecuteNonQuery(); MessageBox.Show("注册成功");
}
}
cn.Close();