首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用VB.NET编写MS数据库问题

问使用VB.NET编写MS数据库问题
EN

Stack Overflow用户
提问于 2015-01-30 02:29:42
回答 1查看 415关注 0票数 0

我正在使用VB.Net来尝试并写入我创建的数据库(需要写入数据库的机器是数据库的所有者,因此不应该出现权限问题)。在运行用于写入数据库的subs时,我没有收到任何错误,但是在我的数据库中没有创建新的记录。我成功地连接到了数据库,因为我返回记录的子程序工作得很好。

写入数据库的子程序:

代码语言:javascript
复制
Public Sub LogThisCard(a As Object)
    Dim con As New OleDb.OleDbConnection
    Dim da As New OleDb.OleDbDataAdapter
    Dim sql As New OleDb.OleDbCommand
    Dim inMachine As String = "Yes"

    con.ConnectionString = Connection()
    con.Open()

    Try
        sql.Connection = con
        sql.CommandText = "INSERT INTO LogTable (MSA, Foo, Bar, Jack, Rabbit, Date_/_Time, Foxtrot) VALUES (@MSA, @Foo, @Bar, @Jack, @Rabbit, @DT, @Foxtrot)"

        sql.Parameters.AddWithValue("MSA", a.MSA)
        sql.Parameters.AddWithValue("Foo", a.Foo)
        sql.Parameters.AddWithValue("Bar", a.Bar)
        sql.Parameters.AddWithValue("Jack", a.Jack)
        sql.Parameters.AddWithValue("Rabbit", a.Rabbit)
        sql.Parameters.AddWithValue("DT", DateTime.Now())
        sql.Parameters.AddWithValue("Foxtrot", a.FoxTrot)

        da.InsertCommand = sql
        da.InsertCommand.ExecuteNonQuery()
    Catch ex As Exception
        Debug.Print(ex.ToString)
    End Try

    con.Close()
End Sub

数据库设计如下:

  • ID: AutoNumber (主键)
  • 生活津贴:编号
  • Foo:号码
  • 酒吧:短文
  • 杰克:短信
  • 兔子:短文
  • 日期/时间:日期/时间
  • 狐步舞:短文
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-30 02:58:04

这可能是Access和您的DateTime参数的问题。如果DateTime允许空值,则将插入更改为执行除DateTime以外的所有操作。如果插入有效,那么您就知道这个问题了。

我不知道为什么access与addwithvalue有问题,但我经常看到它。我发现更好的做法是声明一个参数变量并设置属性,然后在日期时间添加param。

示例:

代码语言:javascript
复制
Dim cmd As OleDb.OleDbCommand
Dim param As New OleDb.OleDbParameter
param.Direction = ParameterDirection.Input
param.DbType = DbType.Date
param.Value = Date.Now

cmd.Parameters.Add(param)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28228290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档