用ExecuteNonQuery()执行insert 语句不成功
update语句能正确执行,若为insert时就不行,不报错,到cmd.ExecuteNonQuery();这句的时候就直接跳出try语句了,拿到sql server 的查询分析器里也能正确执行。
代码如下:
int i = Convert.ToInt32(TextBox1.Text);
string strsql = "";
SqlCommand cmd = new SqlCommand(strsql, cn);
if (i > 0)
{
strsql = "update [checkin] set sid=@p1,intime=@p4 where id="+TextBox1.Text;
}
else
{
strsql = "insert into checkin(sid,did,intime) values(@p1,@p2,@p3)";
}
cmd.Parameters.Add("@p1", SqlDbType.VarChar).Value = txtxh.Text;
cmd.Parameters.Add("@p2", SqlDbType.Int).Value = ddlssm.SelectedValue;
cmd.Parameters.Add("@p3", SqlDbType.SmallDateTime).Value =System.DateTime.Now;
cmd.Parameters.Add("@p4", SqlDbType.SmallDateTime).Value = txtrzsj.Text;
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
------解决方案--------------------cmd.Parameters.Add("@p4", SqlDbType.SmallDateTime).Value = txtrzsj.Text;
你insert的时候 有@p4?
把这个放进if里面
------解决方案--------------------把参数赋值写进循环吧
另外3楼 写错了,Command 执行SQL 没有 open 方法,应该是Connection 数据库链接才有。
------解决方案--------------------
那就是有异常抛出来了,你怎么能说不报错呢...