日期:2014-05-17  浏览次数:20995 次

C#新手诚心请教。。
String cnno = "Data Source=HP-PC;Initial Catalog=FIRST;Integrated Security=True;Pooling=False";
            SqlConnection connection = new SqlConnection(cnno);
            string sql = "insert into Xinxi(Xno,Xname,Xsex,Xage,Xbumen,Xzhicheng,Xgonglin,Xphone,Xjiguan,Xzhuzhi) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "'," + Convert.ToInt32(textBox4.Text) + ",'" + textBox5.Text + "','" + textBox6.Text + "'," + Convert.ToInt32(textBox7.Text) + ",'" + textBox8.Text + "','" + textBox9.Text + "','" + textBox9.Text + "')";
            connection.Open();
            SqlCommand command = new SqlCommand(sql, connection);
             command.ExecuteNonQuery();
             connection.Close();
刚刚编写了个程序,但运行的时候错了,不知道哪有问题,请高手帮忙看看,可以的话帮忙添加判定功能,就是Xno是主键,如果插入一样的主键有提示。。。
------最佳解决方案--------------------
添加个try{}cath{}快语句要执行的代码放入TRY,catch里放入异常然后输出

报什么错
------其他解决方案--------------------
age是文本框吗,是文本框输入的值吗,如果是直接判断age的文本框不能 为空就OK
如:txt_age.text ==""
    messagebox("","")
    this.txt_age.focus();
   return;

txt_age 是你的文本框的命名
------其他解决方案--------------------
主键不能相同的,估计是你主键没有处理好,是自动增长列吗。不是的话请看你插入的主键的值,在数据库里还存在。
------其他解决方案--------------------
引用:
主键不能相同的,估计是你主键没有处理好,是自动增长列吗。不是的话请看你插入的主键的值,在数据库里还存在。
那主键怎么处理呢。。能具体点吗?在此鞋了

 private void button1_Click(object sender, EventArgs e)
        {
            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('Xno='{0}'','Xname='{1}'','Xsex='{2}'','Xage='{3}'','Xbumen='{4}'','Xzhicheng='{5}'','Xgonglin='{6}'','Xphone='{7}'','Xjiguan='{8}'','Xzhuzhi='{9}'') ", textBox1.Text, textBox2.Text, textBox3.Text, age, textBox5.Text, textBox6.Text, gonglin, textBox8.Text, textBox9.Text, textBox10.Text);

            connection.Open();
            SqlCommand command = new SqlCommand(sql, connection);
            //int num = Convert.ToInt32(