您的位置:首页 > 编程语言

ADO.NET编程小错误

2009-11-29 03:21 239 查看
好久没有用ADO.NET和SQL Server打交道了,上一个用了数据库的项目还是用的Linq to SQL. 今天写个小东西用了数据库,居然两次在非常傻的错误上翻了跟头。上网一查,发现和我一样的人还不少,于是就总结上来吧,以免再犯。

错误一:ExecuteNonQuery (或者ExecuteReader): Connection property has not been initialized

网上提到的原因众说纷纭,最后还是我自己发现了问题所在,如下代码中有何问题?

using (SqlConnection conn = SqlHelper.GetSqlConnection())
{
conn.Open ();
//Create table.
using (SqlCommand cmd = new SqlCommand (_cmdCreateTable))
{
cmd.ExecuteNonQuery ();
}
}
估计一下子还真不容易看出来,那就是
new SqlCommand (_cmdCreateTable)
缺少第二个参数:SqlConnection!

错误二:过程或函数 'xxx' 需要参数 '@xxx',但未提供该参数

这个可能原因就更多了,不过到后来我都排除了,最后发现是没有将SqlCommand对象的CommandType设为StoredProcedure! 真是囧了。不过还是挺奇怪的,毕竟没有设的话默认是Text,也就是说它会将存储过程名称当做SQL语句,那此时应该是它不需要参数而我给了参数(原本要传给存储过程的),所以这个错误信息实在是。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: