标题:向Access里插入长字符串问题?
取消只看楼主
gzxlq
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-26
 问题点数:0 回复次数:10 
向Access里插入长字符串问题?

我在代码里向Access数据库里插入记录时,在向一个文本字段的内容超过了255的长度,后来我把那个字段类型改备注型,还是提示字段宽度太小无法插入记录。可是直接在Access那里输入那段字符串,可以输入。而且ACCess的帮助说明了备注字段可以输入65,535个字符。
请问这是什么问题?如何解决?
谢谢谢谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!

搜索更多相关主题的帖子: Access 字符 数据库 字段 备注 
2007-01-11 16:24
gzxlq
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-26
得分:0 

楼上的,不是在控制中不能输入这么字符,而是在文本框里输入的字符不能保存入数据库
这是代码
Dim Conn As New OleDb.OleDbConnection
Dim Cmd As New OleDb.OleDbCommand

If Make_Flag = False Then
MessageBox.Show("没有生成任何票据,请在生成后保存!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Exit Sub
End If


Dim qs_date As String = Strings.Replace(Strings.Left(Me.DTP_qsrq.Value.ToString, Int(Strings.InStr(6, Me.DTP_qsrq.Value.ToString, "-")) - 1), "-", "年") & "月" '截取起始缴费日期
Dim zz_date As String = Strings.Replace(Strings.Left(Me.DTP_zzrq.Value.ToString, Int(Strings.InStr(6, Me.DTP_zzrq.Value.ToString, "-")) - 1), "-", "年") & "月" '截取终止缴费日期

If Save_Flag = False Then
Cmd.CommandText = "insert into bill_info(bill_id,bill_qsrq,bill_zzrq,bill_fkdw,bill_fkrq,bill_fklx,bill_date,bill_bz) values(" & Max_billid + 1 & ",'" & qs_date & "','" & zz_date & "','" & Me.Ttb_fkdw.Text & "',#" & Today.Date() & "#," & Me.jf_flag.SelectedIndex.ToString & ",#" & Date.Now & "#,'" & Me.Ttb_bz.Text & "')"
ElseIf Save_Flag = True Then
Cmd.CommandText = "update bill_info set bill_qsrq='" & qs_date & "',bill_zzrq='" & zz_date & "',bill_fkdw='" & Me.Ttb_fkdw.Text & "',bill_fkrq=#" & Today.Date() & "#,bill_fklx=" & Me.jf_flag.SelectedIndex & ",bill_date=#" & Date.Now & "#,bill_bz='" & Me.Ttb_bz.Text & "' where bill_id=" & Max_billid + 1
End If
Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "\DB\db.mdb; User Id=admin; Password=; "
Conn.Open()
Cmd.Connection = Conn
Cmd.ExecuteReader()
MessageBox.Show("恭喜,成功保存!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)

Save_Flag = True '更改保存标志

就是最后一个字段bill_bz字段,这个字段原来是文本的类型,现在改成了备注型的
内容是由文本框输入的,可是一但超过50个汉字还是不能保存

2007-01-12 08:43
gzxlq
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-26
得分:0 

bygg,YSKING谢谢你们两个了
bygg,能说清楚点一吗,那里为什么要改?改成什么
我改了ExecuteNonQuery()提交查询还是不行


下面是调试的报错图片

[此贴子已经被作者于2007-1-12 16:06:04编辑过]

2007-01-12 16:05
gzxlq
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-26
得分:0 

Access里规定文本类型最多只能为255的宽度

2007-01-12 17:24
gzxlq
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-26
得分:0 
YSKING
还有什么办法吗?
难到是ADO。NET的BUG
2007-01-12 23:08
gzxlq
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-26
得分:0 

好,我到时候单独测试一下
你试的能插入多少个汉字?

[此贴子已经被作者于2007-1-13 13:52:10编辑过]

2007-01-13 13:46
gzxlq
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-26
得分:0 
能给代码我看一下吗?
2007-01-13 14:09
gzxlq
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-26
得分:0 

问题已经解决,我把整个数据库重新创建以后就好了。
不过我有个问题想不通,如果问题是因为我当时将文本类型改为备注型,是因为更改没有生效,但是我在查询中直接更新又没有问题,这样看来数据并没有问题,但是在。NET中更新中却不行。
但如果是。NET的问题,为什么改了数据以后就好了。
所以现在问题,但是到底不知道是那里的问题。
不知道那位高人给解释一下?

2007-01-15 14:43
gzxlq
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-26
得分:0 

我还试过删除那个字段,再创建字段都没有用。
不知道是不是添加了数据源,数据源没有跟着更新的原因

2007-01-15 19:42
gzxlq
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-26
得分:0 

好,等找出了是什么问题,再来告诉大家结果。

2007-01-16 08:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-115455-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.751653 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved