C#问题。。求高手帮忙看看
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();这里会报错。。还有就是在输入两个一样的主键时会提示。。。望指点
[最优解释]
写错了,谁教你这么写的啊上面我写给你的那个可以
[其他解释]
不清楚 你的表设计估计有问题 数据库不是瞎搞的
你可以断点然后单步查找哪里有错误
[其他解释]
1.你的SQL语句就是错的 自己看看INSERT INTO 语句语法
2.整型 例如:age 插入时候不要加'' 字符串和时间类型等的要加''
3.加TRY CATCH
4.在数据库里建立唯一约束,CATCH捕捉相应错误类型,跳出提示
[其他解释]
int num = (int)command.ExecuteNonQuery();
这里不用强转,command返回的就是int受影响的行数
你数理AGE那列是否可以为空如不能,请在文本框输入值时加判断不为空。
实在不行放断点把sql语句考到脚本中去执行就知道什么问题啊
[其他解释]
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);
把你的换成这个在看看
[其他解释]
我这样改了以后
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();还是有错。。怎么改呢?
[其他解释]
我对不起你。。用你的还是那有错。。。
[其他解释]
Insert into Xinxi values('{0}','{1}','{2}',{3},'{4}','{5}',{6},'{7}','{8}','{9}')
[其他解释]
终于可以了。。哈哈哈。。不过我发现个问题,就是我插入一个重复的主键,报错说存在,可是我在我表里没有那个主键呢
[其他解释]
终于可以了。。哈哈哈。。不过我发现个问题,就是我插入一个重复的主键,报错说存在,可是我在我表里没有那个主键呢
[其他解释]
插入的时候不要手动添加主键,主键一般是自增列
[其他解释]
我的编号是主键,那添加编号的时候编号不用输入码?巩爷
[其他解释]
自增列就是自动增加的。
如果编号是主键,并设置了自增,那么添加数据的时候不要手动添加编号!