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

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

搜索更多相关主题的帖子: Access 字符 数据库 字段 备注 
2007-01-11 16:24
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
得分:0 

代码贴出来呀


2007-01-11 17:14
YSKING
Rank: 5Rank: 5
来 自:中国绿城
等 级:贵宾
威 望:16
帖 子:1380
专家分:25
注 册:2006-11-11
得分:0 
你看下你的控件所允许的最大字符数是多少,如果想输入多点,就改为0

仍然自由自我,永远高唱我歌,走遍千里...
2007-01-11 20:57
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
YSKING
Rank: 5Rank: 5
来 自:中国绿城
等 级:贵宾
威 望:16
帖 子:1380
专家分:25
注 册:2006-11-11
得分:0 
Cmd.ExecuteReader() 不是这样的吧,改为Cmd.ExecuteNonQuery()试试看

仍然自由自我,永远高唱我歌,走遍千里...
2007-01-12 11:44
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
Application.StartupPath & "\\DB\\db.mdb
这里也改一下.

飘过~~
2007-01-12 13:45
gzxlq
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-26
得分:0 

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


下面是调试的报错图片

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

2007-01-12 16:05
YSKING
Rank: 5Rank: 5
来 自:中国绿城
等 级:贵宾
威 望:16
帖 子:1380
专家分:25
注 册:2006-11-11
得分:0 
如果你把数据库的字段类型改为文本型,而且设置允许的字符大于255,再执行。它会报什么错?

仍然自由自我,永远高唱我歌,走遍千里...
2007-01-12 16:28
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
是添加的数据量过大吧......

飘过~~
2007-01-12 17:22
gzxlq
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-26
得分:0 

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

2007-01-12 17:24



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




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

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