那位兄弟见过这样的情况 SQL数据插入失败

tix66 2003-06-21 05:30:30
插入操作:
Dim strInsert As String = "INSERT INTO TempUpFiles (UserAlias,Name,Type) VALUES (@UserAlias,@Name,@Type)"
Dim objComm As New SqlCommand(strInsert, objConn)

Dim param0 As New SqlParameter("@UserAlias", SqlDbType.VarChar)
param0.Value = "tty"
Dim param1 As New SqlParameter("@Name", SqlDbType.VarChar)
param1.Value = Name
Dim param3 As New SqlParameter("@Type", SqlDbType.VarChar)
param3.Value = Type
objComm.Parameters.Add(param0)
objComm.Parameters.Add(param1)
objComm.Parameters.Add(param3)

If objConn.State <> ConnectionState.Open Then
objConn.Open()
End If
Try
objComm.ExecuteNonQuery()
Catch ex As Exception
lblMsg.Text = ex.Message
End Try
objConn.Close()
执行后数据库错误提示:
将截断字符串或二进制数据。语句已终止.

上面语句执行后,在数据库能明显看出 数据回滚(既插入后,又被删除了)
但同样的语句 在企业管理器可以插入,或者 我将
上面的语句Dim param3 As New SqlParameter("@Type", SqlDbType.VarChar)
--------->Dim param3 As New SqlParameter("@Type", SqlDbType.VarChar,20)
可以正确插入(注:3个参数任改一个都可,并且数值随意不必与数据库一样)
平时 不是这样的,不必指定 参数的宽度可以正确 执行的
-----------------------------------------------------------------
那位兄弟知道怎么会事? 高分送上
up者分
-----------------------------------------------------------------
***************************************************
********************天天快乐***********************
***************************************************
...全文
107 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lqdmafeng 2003-06-24
  • 打赏
  • 举报
回复
在查询分析器中看怎样?
tix66 2003-06-24
  • 打赏
  • 举报
回复
up
tix66 2003-06-23
  • 打赏
  • 举报
回复
up
tix66 2003-06-23
  • 打赏
  • 举报
回复
上面语句执行后,在数据库能明显看出 数据回滚(既插入后,又被删除了)
但同样的语句,同样的内容 在企业管理器可以插入
(只有几个字节,确信不可能有的字段插入的字符长度大于数据库中该字段所定义的长度)
我将
上面的语句Dim param3 As New SqlParameter("@Type", SqlDbType.VarChar)
--------->Dim param3 As New SqlParameter("@Type", SqlDbType.VarChar,20)
可以正确插入(注:3个参数任改一个都可,并且数值随意不必与数据库一样)
平时 不是这样的,不必指定 参数的宽度可以正确 执行的
注:1。此语句 在上午可以插入,下午就不行了(语句没有更改过)
2。.NET用户的相应权限是sa(即最高权限)
-----------------------------------------------------------------
那位兄弟知道怎么会事? 高分送上
up者有分
------------------------------------------------------------------
matboy 2003-06-22
  • 打赏
  • 举报
回复
不用说了,这是数据类型与数据库不相符的缘故,好好检查一下吧
morganmao 2003-06-22
  • 打赏
  • 举报
回复
我知道你的问题所在,请问你用的数据库是SQLSERVER吧?
请在企业管理器的用户安全中加入并配置.NET用户的相应权限即可;
simbalily 2003-06-21
  • 打赏
  • 举报
回复
Dim Param As New SqlParameter("@Type,SqlDbType.varchar,x),x为数据库中定义的改字段的字符串的长度
comy 2003-06-21
  • 打赏
  • 举报
回复
mmkk() 说得对,可能有的字段插入的字符长度大于数据库中该字段所定义的长度
mmkk 2003-06-21
  • 打赏
  • 举报
回复
一般是长度超过定义
CMIC 2003-06-21
  • 打赏
  • 举报
回复
gz
我一般可以指定参数长度时都指定,所有没遇到你的问题,还有你的Name和Type的数据类型是什么?

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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