黑马程序员技术交流社区
标题:
ADO.NET中问题
[打印本页]
作者:
韩温华
时间:
2012-11-18 22:39
标题:
ADO.NET中问题
while ((streamReader.ReadLine())!= null)//遍历文件的每一行
{
string[] strs = streamReader.ReadLine().Split('|');
//将其中的每一行的内容按照“|”的方式进行分割
string Name = strs[0];//第一部分为姓名
string Nickname = strs[1];//第二部分为昵称
using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=true;User Instance=true"))//连接字符串
{
conn.Open();//打开链接
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "insert into T_Mystudent(name,nicknam) values (@N,@NK)";
cmd.Parameters.Clear();
cmd.Parameters.Add( new SqlParameter("N", Name));
cmd.Parameters.Add ( new SqlParameter("NK", Nickname));
cmd.ExecuteNonQuery();//执行SQL语句查询过程
}
}
使用 cmd.Parameters.Clear()的原因是什么呢,可以具体解释一下么
作者:
王新阳
时间:
2012-11-18 22:58
cmd.Parameters.Clear()语句确切的说是解除它对其它对象的引用,而不是清除它包含的对象,cmd.Parameters.Clear()解除对象引用后,它之前引用的对象还是存在的。所以无论ExecuteNonQuery被多次执行都不会有异常。
作者:
马毅
时间:
2012-11-19 01:11
王新阳 发表于 2012-11-18 22:58
cmd.Parameters.Clear()语句确切的说是解除它对其它对象的引用,而不是清除它包含的对象,cmd.Parameters.C ...
防止已有Parameters导致sql语句错误,从某种程度上你可以认为和Add方法相对~~~
作者:
韩俊
时间:
2012-11-19 14:57
参数不能重复添加,在while中一直用的就是一个sqlcommand,所以往下执行时,要将上一次执行的参数清除掉。cmd.Parameters.Clear();就是这个功能
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2