求C#大神,求指导。。急。。!!!
private void button1_Click(object sender, EventArgs e)
{
if (textBox4.Text == "")
{
MessageBox.Show("请输入年龄!");
return;
}
if (textBox7.Text == "")
{
MessageBox.Show("请输入工龄!");
return;
}
if (comboBox1.Text == "")
{
MessageBox.Show("请选择部门!");
return;
}
int age = Convert.ToInt32(textBox4.Text);
int gonglin = Convert.ToInt32(textBox7.Text);
String cnno = "Data Source=HP-PC;Initial Catalog=FIRST;Integrated Security=True;Pooling=False";
SqlConnection connection = new SqlConnection(cnno);
string sql = string.Format("Insert into Xinxi values('{0}','{1}','{2}',{3},'{4}','{5}',{6},'{7}','{8}','{9}') ", textBox1.Text, textBox2.Text, textBox3.Text, age, comboBox1.Text, textBox6.Text, gonglin, textBox8.Text, textBox9.Text, textBox10.Text);
connection.Open();
SqlCommand command = new SqlCommand(sql, connection);
//int num = Convert.ToInt32(command.ExecuteScalar());
int num = command.ExecuteNonQuery();
try
{
if (num > 0)
{
MessageBox.Show("添加成功!");
this.Close();
}
else
{
MessageBox.Show("添加失败!");
}
}
catch (Exception ex)
{
MessageBox.Show("错误异常" + ex);
}
finally
{
connection.Close();
}
}
这是我刚写的。。往数据库里加信息,其中Xno是主键,在添加一样的主键时会提示出错,得怎么改呀。。在下新手,求大神指导。。
[最优解释]
还有就是,为秘既然设了主键你还要插入同样的数据。。。你要是硬想这样做那就try起来吧。。。把异常抛弃掉就不会报错了。。。但是这种做法有点匪夷所思。
另外你的是用了try,但是应该用在执行的地方,你那里都执行完了,用try没意义了啊。。。
connection.Open();
SqlCommand command = new SqlCommand(sql, connection);
//int num = Convert.ToInt32(command.ExecuteScalar());
try
{
int num = command.ExecuteNonQuery();
if (num > 0)
{
MessageBox.Show("添加成功!");
this.Close();
}
else
{
MessageBox.Show("添加失败!");
}
}
catch (Exception ex)
{
MessageBox.Show("错误异常" + ex);
}
finally
{
connection.Close();
}
[其他解释]
主键不是不能重复的吗?
[其他解释]
要是不想出错,而且要重复,就把Xno主键设成非主键.
[其他解释]
我表达有误。。就是,当我输入一样的主键的时候,程序出错,怎么解决这个问题
[其他解释]
我表达有误。。就是,当我输入一样的主键的时候,程序出错,怎么解决这个问题
[其他解释]
依然不懂,什么意思,主键不是不能重复的吗
[其他解释]
一样的主键和重复的主键有区别吗?
[其他解释]
主键是唯一的
[其他解释]
真心没听懂什么意思。。。楼主的意思是插入时界面就报错,这个没有道理啊,就算是主键的话插入会有.net相关的提示,比如违反了什么。。什么主键不能重复的约束
[其他解释]
[quote=引用:]
还有就是,为秘既然设了主键你还要插入同样的数据。。。你要是硬想这样做那就try起来吧。。。把异常抛弃掉就不会报错了。。。但是这种做法有点匪夷所思。
另外你的是用了try,但是应该用在执行的地方,你那里都执行完了,用try没意义了啊。。。
这样说吧。。我的表里Xno是主键,我想要的效果是,表里有1号职工,在我输入的时候,如果我插入2号,就插入成功,如果我插入1号的话,就提示我“此编号存在”。。这样可以明白了吧,嘿嘿
[其他解释]
这样说吧。。我的表里Xno是主键,我想要的效果是,表里有1号职工,在我输入的时候,如果我插入2号,就插入成功,如果我插入1号的话,就提示我“此编号存在”。。这样可以明白了吧,嘿嘿
[其他解释]
这样说吧。。我的表里Xno是主键,我想要的效果是,表里有1号职工,在我输入的时候,如果我插入2号,就插入成功,如果我插入1号的话,就提示我“此编号存在”。。这样可以明白了吧,嘿嘿
[其他解释]
插入以前,
先 select 一下呗
或者 catch 里面 写
编号已存在
[其他解释]
你把上面的代码异常那里改下面这个就是你要的结果了,不过ex的内容差不多也是这个意思啦:
try
{
int num = command.ExecuteNonQuery();
if (num > 0)
{
MessageBox.Show("添加成功!");
this.Close();
}
else
{
MessageBox.Show("添加失败!");
}
}
catch (Exception ex)
{
MessageBox.Show("“此编号存在");
}