C# 出错了~什么约束 非空的问题

来源:百度知道 编辑:UC知道 时间:2024/07/04 23:02:17
this.表TableAdapter.Fill(this.系统DataSet1.表);处显示“未能启用约束,一行或多行违反非空,唯一或外键约束的值”

string sql = String.Format("INSERT INTO 表 (人名,关系,TEL,QQ,Email,职业) VALUES('{0}','{1}','{2}','{3}','{4}','{5}','{6}')", textBox1.Text, comboBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text);
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();

其中人名是主键非空,关系要选择的也是非空,其他都可以空的,为什么还会出错呢?请问要从哪方面着手?
我改过来了~但还是有这个约束非空什么的问题
改的:

string sql = String.Format("INSERT INTO 表 (人名,关系,TEL,QQ,Email,职业) VALUES('{0}','{1}','{2}','{3}','{4}','{5}')", textBox1.Text, comboBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text);
SqlCommand cmd = new SqlCommand(sql, co

INTO 表 (人名,关系,TEL,QQ,Email,职业) 共计6个字段

你下面给了7个参数,是不是这里的问题?

textBox1.Text, comboBox1.Text按照你的数据库表设计这两个非空字段应该是从这两个控件的TEXT属性获取数据的吧~~你把这两个东西打印下看看是不是空的……如果都不是空的~~那就打印出组合好的SQL语句~~看这个语句直接在数据库中执行下是否是正常的(如SQLSERVER的查询分析器~DB2的命令行工具等)~~~如果是的话肯定是中间还有别的处理过程更改了SQL~~ 另建议你的SQL语句最好不要这样写~~最好是用那个什么PARA......的类一个一个的添加~~这样类型,个数都很号控制

就是CONSOLE.WRITE()(貌似是这个方法)往控制台打印你最终要执行的SQL语句~~把这个语句在数据库的查询分析器中执行下看看报啥错~~然后根据这个改…… 将SQL语句直接在数据库提供的SQL执行工具上执行是很直接的调试方法~~不会受程序本身的干扰~~数据库上执行过了再在程序里实现就可以了~~

1:参数和插入数列不一致
2:你的数据库有些字段是非空的,而你插入的时候可能插入的空值

错啦,就6列,你怎么给7个参数,不错有鬼了