菜鸟问题:我的datagrid中,一个字段的width为100,而它后面还有别的字段,如何正常显示呀?在线等待,谢谢!

angel_lee 2002-10-06 04:38:07
我的页面可以正常显示,可在点击插入数据按钮后,就会出现如下错误:

异常详细信息: System.IndexOutOfRangeException: 此 SqlParameterCollection 中未包含带有 ParameterName“@GXFW”的 SqlParameter。

但经过检查"@GXFW"这个参数定义了,而且没有其它错误。只有它所对应的字段的长度为50,而该字段的前一个字段的长度为100(一行显示一条记录包括这两个字段)。 跟字段长度有关吗? 如果有关,如何解决呢?

还有char 和 varchar 的区别是什么?

多谢帮助^_^
...全文
29 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel_lee 2002-10-07
  • 打赏
  • 举报
回复
to dotAge(老朽,提醒你及时结贴)
你的方法解决了我的问题,可是为什么数据加不到datagrid中呀,dataset好象是空的,即便我库中有数据,dataset也没有,怎么将库中的数据显示到dataset中呀?帮忙看看别一张贴,多加分。
dotAge 2002-10-06
  • 打赏
  • 举报
回复
与字段长度无关。

参数虽然定义了,但可能没有加到sqlCommand.parameters集合中去,应该这样写:
sqlCommand.parameters.add("@gxfw",sqldbtype.char,50).value="gxfw的字串值"

char(n)表示固定长度为n, 在存储时,如果你的内容不足n,则在后面补足空格。
varchar(n)表示最大长度为n,在存储时,实际内容多少就存多少,因此节省空间。

如果一个列内所有值的长度都相同或者值的长度相差不大,使用固定长度列更高效。
hx_li 2002-10-06
  • 打赏
  • 举报
回复
用自定义模板列,估计可以解决这个问题
<asp:TemplateColumn>
<HeaderStyle Width="50px"></HeaderStyle>
<HeaderTemplate>
航段
</HeaderTemplate>
<ItemTemplate>
<asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "segment") %>' runat="server" ID="Label1"/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "segment") %>' ID="segmengText" Width="50" />
</EditItemTemplate>
</asp:TemplateColumn>

有可能分页显示时,页码已经越界
建议第次执行查询等操作时,设置
DataGrid_Policy.CurrentPageIndex = 0;


char[(n)]

长度为 n 个字节的固定长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为 n 个字节。char 在 SQL-92 中的同义词为 character。

varchar[(n)]

长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。varchar 在 SQL-92 中的同义词为 char varying 或 character varying。

62,249

社区成员

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

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

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

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