老问题怎么想sql server插入大文本

shizhusz110 2008-11-01 10:44:46

void Insert()
{
try
{
string sql="insert into telnet_et_temp(zwup,zdsb,zusi)values(@zwup,@zdsb,@zusi)";
SqlParameter[] par={
new SqlParameter("@zwup",SqlDbType.Text,16),
new SqlParameter("@zdsb",SqlDbType.Text,16),
new SqlParameter("@zusi",SqlDbType.Text,16)};
par[0].Value=zwupstr;
par[1].Value=zdsbstr;
par[2].Value=zusistr;
using(SqlConnection cn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]))
{
cn.Open();
using(SqlCommand cm=cn.CreateCommand())
{
cm.CommandType=CommandType.Text;
cm.CommandText=sql;
foreach(SqlParameter spt in par)
{
cm.Parameters.Add(spt);
}
cm.ExecuteNonQuery();
}
}
MessageBox.Show("保存日志成功!");
}
catch (System.Exception e)
{
MessageBox.Show(e.Message);
}
}

我的数据表里面的字段都是text类型,可是怎么老只插入了几个字符...
谢谢回复!!
...全文
121 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shizhusz110 2008-11-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 tmxk2002 的回复:]
你的text文本是不是有换行?
然后你是怎么知道没插入的?
用查询分析器,对于换行的文本是看不到的,只能看到第一行。
[/Quote]
谢谢!!!!!
shizhusz110 2008-11-01
  • 打赏
  • 举报
回复
对我的是有"\r\n",就是在查询分析器里将起ctrl+c出来
  • 打赏
  • 举报
回复
你的text文本是不是有换行?
然后你是怎么知道没插入的?
用查询分析器,对于换行的文本是看不到的,只能看到第一行。
shizhusz110 2008-11-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 evjen 的回复:]
SqlDbType类型设置为context类型

或者自己写一个关于类型的枚举  长度自己设置
[/Quote]
我2003的没有context这个类型!
shizhusz110 2008-11-01
  • 打赏
  • 举报
回复
还是不行,我将16去掉了就是多插如了写字符而已,没有全部插入.字符很长
evjen 2008-11-01
  • 打赏
  • 举报
回复
换种类型啊
evjen 2008-11-01
  • 打赏
  • 举报
回复
SqlDbType类型设置为context类型

或者自己写一个关于类型的枚举 长度自己设置
shizhusz110 2008-11-01
  • 打赏
  • 举报
回复
那数据库里没是16位,:new SqlParameter("@zwup",SqlDbType.Text,16), 怎么设置呢?
  • 打赏
  • 举报
回复
长度设置太短,采用默认的即可
jhdxhj 2008-11-01
  • 打赏
  • 举报
回复
你是不是这个地方出了问题: SqlParameter[] par={
new SqlParameter("@zwup",SqlDbType.Text,16),
new SqlParameter("@zdsb",SqlDbType.Text,16),
new SqlParameter("@zusi",SqlDbType.Text,16)};
里面的16是不是设置的太短了?

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧