我想向SqlServer的一个表里添加长文本,刚开始用的方法是:
...
strCmd="select * from tableText"
SqlDataAdapter adapter=new SqlDataAdapter(strCmd);
DataSet ds=new DataSet();
adapter.Fill(ds,tableName);
adapter.Update(ds,tableName);
....但是当数据库中的记录条数大于4500条时,数据库访问速度明显变慢,我的目的仅仅是将一些长文本写入到数据库中。请问这种方法为什么会导致如此结果?如果用SqlCommand.ExcuteNonQuery(string strCmd)方法可行吗,以及如何表示strCmd?若此法不行,是否有更好的解决办法?请高手看着指点吧,有一说一,高分重谢。
...
strCmd="select * from tableText"
SqlDataAdapter adapter=new SqlDataAdapter(strCmd);
DataSet ds=new DataSet();
adapter.Fill(ds,tableName);
adapter.Update(ds,tableName);
....但是当数据库中的记录条数大于4500条时,数据库访问速度明显变慢,我的目的仅仅是将一些长文本写入到数据库中。请问这种方法为什么会导致如此结果?如果用SqlCommand.ExcuteNonQuery(string strCmd)方法可行吗,以及如何表示strCmd?若此法不行,是否有更好的解决办法?请高手看着指点吧,有一说一,高分重谢。
VALUES (3022, "John", "Smith", 2101)类似这样
SqlDataAdapter adapter=new SqlDataAdapter(strCmd);
DataSet ds=new DataSet();
adapter.Fill(ds,tableName);
adapter.Update(ds,tableName);这种工作机制是让ADO.net 帮你转换成 Insert ... 语句进而执行
所以效率不高
还不如自己写Insert 直接操作不知道 如果写个存储过程 每次插入数据 把插入值传给存储过程,这样是不是效率会高一点?还有 我最近也遇到这样的问题 每次插入条数超多 20万行以上
需要等很久 有没有什么解决办法?谢
try
{
}
catch
{
}
finally
{
}
结构化错误处理的try块中。
特殊字符用\转转义字符试试