问题描述
现在想把一个很长的string插入到sqlserver数据表中的text类型字段,但当string非常大时无法插入,请问有什么解决办法,谢谢!
解决方案
解决方案二:
不会吧,text型都放不下?你的string有多大呀。
解决方案三:
按住,狠插~
解决方案四:
text也放不下,那你就不要放了
解决方案五:
不要使用拼串的Sql,而是使用数据库命令对象如SqlCommand,为其添加Text类型的参数就可以了,比如SqlParameter。
解决方案六:
请问hbxtlhx能帮我举个例子么?不太明白你的意思,谢谢:)
解决方案七:
SqlParameter[]parms={newSqlParameter("@BeginDate",SqlDbType.DateTime),newSqlParameter("@EndDate",SqlDbType.DateTime),newSqlParameter("@Grp_Name",SqlDbType.Text)};parms[0].Value=begin_Date;parms[1].Value=end_Date;parms[2].Value=GrpName;
解决方案八:
可能是你的sql语句过长,而不是你的text字段过长
解决方案九:
Text是文本文件方式存储,会自己增加大小,不可能放不下string
解决方案十:
SQL语句过长
解决方案十一:
各位,我按照大家的方法是这样写的存储过程CREATEProcedureInsertDetails@provincevarchar(10),@datestrvarchar(8),@shouldint,@intimeint,@intimeratiovarchar(10),@lateint,@lateratiovarchar(10),@withoutint,@withoutratiovarchar(10),@latedetailstext,@withoutdetailstext,@archivechar(1)asexec('InsertintoSTAT_REGION_AWS_STvalues('''+@province+''','''+@datestr+''','''+@should+''','''+@intime+''','''+@intimeratio+''','''+@late+''','''+@lateratio+''','''+@without+''','''+@withoutratio+''','''+@latedetails+''','''+@withoutdetails+''','''+@archive+''')')GO然后在程序中添加参数如下com=newSqlCommand("InsertDetails",conn);com.CommandType=CommandType.StoredProcedure;com.Parameters.Add("@province",SqlDbType.Char,10);com.Parameters["@province"].Value=InsertArray[0];com.Parameters.Add("@datestr",SqlDbType.Char,8);com.Parameters["@datestr"].Value=InsertArray[1];com.Parameters.Add("@should",SqlDbType.Int);com.Parameters["@should"].Value=InsertArray[2];com.Parameters.Add("@intime",SqlDbType.Int);com.Parameters["@intime"].Value=InsertArray[3];com.Parameters.Add("@intimeratio",SqlDbType.Char,10);com.Parameters["@intimeratio"].Value=InsertArray[4];com.Parameters.Add("@late",SqlDbType.Int);com.Parameters["@late"].Value=InsertArray[5];com.Parameters.Add("@lateratio",SqlDbType.Char,10);com.Parameters["@lateratio"].Value=InsertArray[6];com.Parameters.Add("@without",SqlDbType.Int);com.Parameters["@without"].Value=InsertArray[7];com.Parameters.Add("@withoutratio",SqlDbType.Char,10);com.Parameters["@withoutratio"].Value=InsertArray[8];com.Parameters.Add("@latedetails",SqlDbType.Text);com.Parameters["@latedetails"].Value=InsertArray[9];com.Parameters.Add("@withoutdetails",SqlDbType.Text);com.Parameters["@withoutdetails"].Value=InsertArray[10];com.Parameters.Add("@archive",SqlDbType.Char,1);com.Parameters["@archive"].Value=InsertArray[11];com.ExecuteNonQuery();可是当@latedetails和@withoutdetails达到上千个字符的时候,就插入不了了,这到底是什么原因呢?
解决方案十二:
sql接受最长的单次脚本长度是有限制的,是sqlserver本身的限制,我以前测试过,大概是36K字符的长度(sqlserver2000).