SqlCommand.ExecuteReader
MSND上的解释如:
将 CommandText 发送到 Connection 并生成一个 SqlDataReader。
最近在项目中发现个问题,(美国来的PACKAGE)
myCommand.CommandText = "Insert into .... "
SqlDataReader dr = myCommand.ExecuteReader()
while(dr.Read())
{
Guid oId = (Guid)dr["oId"];
}
初看代码的时候会以为可以返回 INSERT 进去的 记录,
可运行时发现 Guid oId = (Guid)dr["oId"]; 这一句永远不会运行,
试验几次,发现只有运行SELECT语句时才会 得到 有值 的 SqlDataReader。
解决方法:
1,运用存储过程,利用参数得到 ["oId"] 。(推荐)
2,INSERT 后再通过SELECT 检索出刚插入的数据。(效率较低)
这个项目的框架很值得学习,不过一些小问题也让我大跌眼睛,取长补短,呵呵。