C#问题。。求高手帮忙看看

yexin99 中南民族大学 学生  2012-12-08 03:51:40
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(command.ExecuteScalar());
int num = (int)command.ExecuteNonQuery();
try
{
if (num > 0)
{

MessageBox.Show("修改成功!");
this.Close();
}
else
{
MessageBox.Show("原密码错误!");
}


}
catch (Exception ex)
{

MessageBox.Show("错误异常" + ex);
}
finally
{
connection.Close();
}

}

这是我修改后的,如果我我的age里为空会报错,如果有数据则int num = (int)command.ExecuteNonQuery();这里会报错。。还有就是在输入两个一样的主键时会提示。。。望指点
...全文
125 点赞 收藏 13
写回复
13 条回复
E次奥 2012年12月10日
自增列就是自动增加的。 如果编号是主键,并设置了自增,那么添加数据的时候不要手动添加编号!
回复 点赞
yexin99 2012年12月08日
引用 11 楼 porenasckx 的回复:
插入的时候不要手动添加主键,主键一般是自增列
我的编号是主键,那添加编号的时候编号不用输入码?巩爷
回复 点赞
E次奥 2012年12月08日
插入的时候不要手动添加主键,主键一般是自增列
回复 点赞
newtee 2012年12月08日
不清楚 你的表设计估计有问题 数据库不是瞎搞的 你可以断点然后单步查找哪里有错误
回复 点赞
yexin99 2012年12月08日
引用 7 楼 zhuankeshumo 的回复:
Insert into Xinxi values('{0}','{1}','{2}',{3},'{4}','{5}',{6},'{7}','{8}','{9}')
终于可以了。。哈哈哈。。不过我发现个问题,就是我插入一个重复的主键,报错说存在,可是我在我表里没有那个主键呢
回复 点赞
yexin99 2012年12月08日
引用 6 楼 yexin99 的回复:
引用 5 楼 q6301536 的回复:引用 4 楼 yexin99 的回复:引用 1 楼 zhuankeshumo 的回复: 1.你的SQL语句就是错的 自己看看INSERT INTO 语句语法 2.整型 例如:age 插入时候不要加'' 字符串和时间类型等的要加'' 3.加TRY CATCH 4.在数据库里建立唯一约束,CATCH捕捉相应错误……
终于可以了。。哈哈哈。。不过我发现个问题,就是我插入一个重复的主键,报错说存在,可是我在我表里没有那个主键呢
回复 点赞
newtee 2012年12月08日
Insert into Xinxi values('{0}','{1}','{2}',{3},'{4}','{5}',{6},'{7}','{8}','{9}')
回复 点赞
yexin99 2012年12月08日
引用 5 楼 q6301536 的回复:
引用 4 楼 yexin99 的回复:引用 1 楼 zhuankeshumo 的回复: 1.你的SQL语句就是错的 自己看看INSERT INTO 语句语法 2.整型 例如:age 插入时候不要加'' 字符串和时间类型等的要加'' 3.加TRY CATCH 4.在数据库里建立唯一约束,CATCH捕捉相应错误类型,跳出提示我这样改了以后 s……
我对不起你。。用你的还是那有错。。。
回复 点赞
q6301536 2012年12月08日
引用 4 楼 yexin99 的回复:
引用 1 楼 zhuankeshumo 的回复: 1.你的SQL语句就是错的 自己看看INSERT INTO 语句语法 2.整型 例如:age 插入时候不要加'' 字符串和时间类型等的要加'' 3.加TRY CATCH 4.在数据库里建立唯一约束,CATCH捕捉相应错误类型,跳出提示我这样改了以后 string sql = string.Format("Inser……
写错了,谁教你这么写的啊上面我写给你的那个可以
回复 点赞
yexin99 2012年12月08日
引用 1 楼 zhuankeshumo 的回复:
1.你的SQL语句就是错的 自己看看INSERT INTO 语句语法 2.整型 例如:age 插入时候不要加'' 字符串和时间类型等的要加'' 3.加TRY CATCH 4.在数据库里建立唯一约束,CATCH捕捉相应错误类型,跳出提示
我这样改了以后 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, textBox5.Text, textBox6.Text, gonglin, textBox8.Text, textBox9.Text, textBox10.Text); 这里int num = (int)command.ExecuteNonQuery();还是有错。。怎么改呢?
回复 点赞
q6301536 2012年12月08日
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); 把你的换成这个在看看
回复 点赞
q6301536 2012年12月08日
int num = (int)command.ExecuteNonQuery(); 这里不用强转,command返回的就是int受影响的行数 你数理AGE那列是否可以为空如不能,请在文本框输入值时加判断不为空。 实在不行放断点把sql语句考到脚本中去执行就知道什么问题啊
回复 点赞
newtee 2012年12月08日
1.你的SQL语句就是错的 自己看看INSERT INTO 语句语法 2.整型 例如:age 插入时候不要加'' 字符串和时间类型等的要加'' 3.加TRY CATCH 4.在数据库里建立唯一约束,CATCH捕捉相应错误类型,跳出提示
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告