【问题标题】:How to insert into Visual Studio Database using vb.net如何使用 vb.net 插入 Visual Studio 数据库
【发布时间】:2015-12-08 22:30:57
【问题描述】:

我正在使用 Visual Studio 2015,但我无法让我的代码将数据插入到 Visual Studio 数据库中。没有错误,aspx 页面运行良好,但没有写入数据。这是我的代码:

Dim strConnectionString As String = System.Configuration.ConfigurationManager.ConnectionStrings("Project1ConnectionString").ConnectionString
    Dim drCart As SqlDataReader
    Dim strSQLStatement As String
    Dim cmdSQL As SqlCommand
    strSQLStatement = "SELECT * FROM OrderHead"
    Dim conn As New SqlConnection(strConnectionString)
    cmdSQL = New SqlCommand(strSQLStatement, conn)
    conn.Open()
    drCart = cmdSQL.ExecuteReader()

    Dim ExpCard = CMonth.Text + CYear.Text
    Dim Fname = FristTxt.Text
    Dim Lname = LastTxt.Text
    Dim Address1 = AddTxt1.Text
    Dim Address2 = AddTxt2.Text
    Dim City = CityTxt.Text
    Dim State = StateDList.Text
    Dim ZipCode = ZipTxt.Text
    Dim PhoneNum = NumTxt.Text
    Dim CreditNum = CNumber.Text
    Dim CreditType = CtypeList.Text

    If drCart.Read() Then

        Dim strSQLStatement2 = "Insert into OrderHead (FirstName, LastName, StreetAddress, City, State, Zip, PhoneNumber, CreditCard, CreditType, ExpDate, StreetAddress2) VALUES (" & Trim(Fname) &
            ", " & Trim(Lname) & ", " & Trim(Address1) & ", " & Trim(City) & ", " & Trim(State) &
            ", " & CInt(ZipCode) & ", " & CInt(PhoneNum) & ", " & CInt(CreditNum) & ", " & Trim(CreditType) &
            ", " & CInt(ExpCard) & ", " & Trim(Address2) & "')"
        Dim conn2 As New SqlConnection(strConnectionString)
        conn2.Open()
        Dim cmdSQL2 = New SqlCommand(strSQLStatement2, conn2)
        drCart = cmdSQL2.ExecuteReader()
        conn2.Close()
    End If

如果您能指出我的错误,我将不胜感激。

【问题讨论】:

  • 不要使用 ExecuteReader 插入数据;不要连接 SQL,使用参数,为了所有神圣,不要存储未加密的信用卡号(如果有的话),当然也不要存储为整数。并处理您的数据库对象

标签: vb.net visual-studio visual-studio-2015


【解决方案1】:

正如 Plutonix 所说:ExecuteReader 用于一次读取 SELECT 查询的结果一行。您希望 ExecuteNonQuery 运行 INSERT 查询。

此外,切勿使用串联来构建包含用户输入的查询。在某些情况下,您可能会发现从预定义的字符串构建查询很有用,但是对于随机输入,一个不怀好意的人可能会用正确的输入清除您的整个数据库。使用Parameters!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多