VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 930|回复: 7

为什么添加记录出错???

[复制链接]

3

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-1-11 09:00:02 | 显示全部楼层 |阅读模式
我用vb.net连接更新Access数据库,其中textbox4跟textbox5的数据类型都为数字,而其他的都为文本。在添加记录时,只要添加的数据类型没错,那就可以继续添加记录,但一旦添加的数据类型出错,以后添加的记录的数据类型尽管没错也会弹出出错警告,为什么会这样啊?哪位高手能帮帮小弟吗?在此先谢谢了!下面是我的代码: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim SQL As String
        Dim addItem As OleDb.OleDbCommand
        Try
            SQL = "INSERT INTO message VALUES(" + Chr(39) + CStr(TextBox5.Text) + Chr(39) + "," + Chr(39) + CStr(TextBox1.Text) + Chr(39) + "," + Chr(39) + CStr(TextBox2.Text) + Chr(39) + "," + Chr(39) + CStr(TextBox3.Text) + Chr(39) + "," + Chr(39) + CStr(TextBox4.Text) + Chr(39) + ")"
            '上式中的Chr(39)代表单引号,因为单引号的ASCII码是39。所以Chr(39)也可以用"'"代替,因为INSERT语句格式为:INSERT INTO 表名(字段1,字段2,字段3……) VALUES('值1','值2','值3'……)
            OleDbConnection1.Open()
            addItem = New OleDb.OleDbCommand(SQL, OleDbConnection1)
            addItem.ExecuteNonQuery()
            OleDbConnection1.Close()
            DataSet11.Clear()
            OleDbDataAdapter1.Fill(DataSet11, "message")
            xianshi()
        Catch ex As Exception
            MessageBox.Show("类型不对!请核实!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        End Try
    End Sub
回复

使用道具 举报

0

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-15 14:36:01 | 显示全部楼层
设置个断点,自己调试一下,看运行到哪句的时候就跳到Catch去了
回复

使用道具 举报

0

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-1-16 09:36:01 | 显示全部楼层
INSERT INTO message



INSERT message
回复

使用道具 举报

1

主题

12

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-1-16 13:36:01 | 显示全部楼层
字段类型是什么?
可以在加入数据库前作一下数据验证,再添加
if is IsNumeric("") then '是否为数字
    '播入数据
else
   '错误提示,退出
end if

回复

使用道具 举报

0

主题

3

帖子

1.00

积分

新手上路

Rank: 1

积分
1.00
发表于 2020-1-16 15:56:06 | 显示全部楼层
因为你出错之后,OleDbConnection1没有close吧?下次再open就直接会跳异常了。
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-17 09:36:02 | 显示全部楼层
这语句调试应该不难.
  有可能你的插入语句写得不对,你可以换一种写发.
回复

使用道具 举报

0

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-17 22:54:01 | 显示全部楼层
DataAdapter.ContinueUpdateOnError = False
就ok了
回复

使用道具 举报

3

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-1-22 22:18:01 | 显示全部楼层
非常谢谢各位朋友帮小弟的忙,特别是三楼的朋友,我用
if is IsNumeric("") then '是否为数字
    '播入数据
else
   '错误提示,退出
end if
代替try...catch语句,现在已经解决了困挠本人已久的难题。
谢谢你们哦!^_^
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表