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

新手问两个问题
1.
 SqlConnection con = new SqlConnection(sqlconnstr);
  con.Open();
  string sql = "insert into [Record] select *  from Item where Item_id='" + Item_id + "';
  delete from Item where Item_id='" + Item_id + "' ";
  SqlCommand cmd = new SqlCommand(sql, con);
  SqlDataReader dr = cmd.ExecuteReader();

如何判断sql是否执行成功呢?

2.
 string sql2 = "insert into [Account] select Item_id,Price,'" + Convert.ToInt32(Price) * 0.2 + "' from [Item] where  Item_id='" + Item_id + "'";

这个语句执行了没显示出错,但在Account表里也找不到记录。不知道是哪里出错了。

------解决方案--------------------
dr 有值或者为空 代表执行成功了


没看懂你第二个  insert into tablename(filed1,filed2,filed3)values(value1,value2,value3)
添加表记录的格式是这样的
------解决方案--------------------
如果没有丢出异常就是执行成功了。

之所以数据没有变化是你没有写对sql。insert into不是你这么写的。
------解决方案--------------------
返回受影响的行数如果大于0,那就成功了嘛,第二句没有异常说明运行成功了,至少数据库中没有数据,可能是那个select后面本来就没记录,你可以判断一下,受影响的行数,看实际插入了多少条记录
------解决方案--------------------
LZ  数据库的操作主要分为 查询(读取) 还有 增删改(写入)两类
如果是报错,你的SQL语句必定会没有执行 不然就是执行了(但是执行了就不是说明你执行正确了)

LZ可以在看看基本的SQL语法
------解决方案--------------------
第一个问题,楼主可以接受返回值看看受影响的行数

第二个问题,执行SQL没有异常,但是没有数据说明你SQL有地方不对
感觉可能是 where  条件不对,你把语句放数据库里运行一下看看
------解决方案--------------------
基本功啊,基本功。把sql语句打印出来执行下先