首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

求C#大神,求指点。

2012-12-16 
求C#大神,求指导。。急。。!!!private void button1_Click(object sender, EventArgs e){if (textBox4.Text

求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主键设成非主键.
[其他解释]
引用:
主键不是不能重复的吗?
我表达有误。。就是,当我输入一样的主键的时候,程序出错,怎么解决这个问题
[其他解释]
引用:
要是不想出错,而且要重复,就把Xno主键设成非主键.
我表达有误。。就是,当我输入一样的主键的时候,程序出错,怎么解决这个问题
[其他解释]
依然不懂,什么意思,主键不是不能重复的吗
[其他解释]
引用:
依然不懂,什么意思,主键不是不能重复的吗

一样的主键和重复的主键有区别吗?
[其他解释]
主键是唯一的

[其他解释]
真心没听懂什么意思。。。楼主的意思是插入时界面就报错,这个没有道理啊,就算是主键的话插入会有.net相关的提示,比如违反了什么。。什么主键不能重复的约束
[其他解释]
[quote=引用:]
还有就是,为秘既然设了主键你还要插入同样的数据。。。你要是硬想这样做那就try起来吧。。。把异常抛弃掉就不会报错了。。。但是这种做法有点匪夷所思。

另外你的是用了try,但是应该用在执行的地方,你那里都执行完了,用try没意义了啊。。。
这样说吧。。我的表里Xno是主键,我想要的效果是,表里有1号职工,在我输入的时候,如果我插入2号,就插入成功,如果我插入1号的话,就提示我“此编号存在”。。这样可以明白了吧,嘿嘿
[其他解释]
引用:
依然不懂,什么意思,主键不是不能重复的吗
这样说吧。。我的表里Xno是主键,我想要的效果是,表里有1号职工,在我输入的时候,如果我插入2号,就插入成功,如果我插入1号的话,就提示我“此编号存在”。。这样可以明白了吧,嘿嘿
[其他解释]
引用:
真心没听懂什么意思。。。楼主的意思是插入时界面就报错,这个没有道理啊,就算是主键的话插入会有.net相关的提示,比如违反了什么。。什么主键不能重复的约束
这样说吧。。我的表里Xno是主键,我想要的效果是,表里有1号职工,在我输入的时候,如果我插入2号,就插入成功,如果我插入1号的话,就提示我“此编号存在”。。这样可以明白了吧,嘿嘿
[其他解释]
引用:
引用:真心没听懂什么意思。。。楼主的意思是插入时界面就报错,这个没有道理啊,就算是主键的话插入会有.net相关的提示,比如违反了什么。。什么主键不能重复的约束这样说吧。。我的表里Xno是主键,我想要的效果是,表里有1号职工,在我输入的时候,如果我插入2号,就插入成功,如果我插入1号的话,就提示我“此编号存在”。。这样可以明白了吧,嘿嘿
   ……



插入以前,
先 select 一下呗
或者 catch 里面 写 
编号已存在
[其他解释]
引用:
[quote=引用:]
还有就是,为秘既然设了主键你还要插入同样的数据。。。你要是硬想这样做那就try起来吧。。。把异常抛弃掉就不会报错了。。。但是这种做法有点匪夷所思。

另外你的是用了try,但是应该用在执行的地方,你那里都执行完了,用try没意义了啊。。。
这样说吧。。我的表里Xno是主键,我想要的效果是,表里有1号职工,在我输……


你把上面的代码异常那里改下面这个就是你要的结果了,不过ex的内容差不多也是这个意思啦:

            try
            {
                int num = command.ExecuteNonQuery();


                if (num > 0)
                {
                    MessageBox.Show("添加成功!");
                    this.Close();
                }
                else
                {
                    MessageBox.Show("添加失败!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("“此编号存在");
            }

热点排行