【发布时间】:2015-01-13 13:32:30
【问题描述】:
所以基本上我正在尝试将以下代码写入数据库,并且我将主键作为 Int 并且它是 autogen 但是当写入数据库时它不允许我这样做它一直告诉我我不是t 允许输入空值(因为代码显然没有写入主键字段)所以我使用了该行
cmd.Parameters.Add("@EventID", SqlDbType.Int).Value = 3
但问题是每次我想测试新记录时都必须更改值,即 1、2、3、4 等等。我想知道是否可以输入一行代码,通过每次添加 +1 来创建一个值,这样我就不需要每次都进入代码并输入一个新数字。下面是写入数据库的完整代码,以便您更好地查看它
Dim Con As SqlConnection
Dim cmd As SqlCommand
Dim recordsAffected As String
Dim cmdstring As String = "INSERT [Event Table](EventID, EventTypeID, EventName, VenueName, NumberOfGuests, Date, ClientAddress, WeddingName, BuildingAddress) Values(@EventID, @EventTypeID, @EventName, @VenueName, @NumberOfGuests, @Date, @ClientAddress, @WeddingName, @BuildingAddress)"
Con = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\YellowDoor.mdf;Integrated Security=True;User Instance=True")
cmd = New SqlCommand(cmdstring, Con)
cmd.Parameters.Add("@EventID", SqlDbType.Int).Value = 3
cmd.Parameters.Add("@EventTypeID", SqlDbType.Text).Value = EventTypeDD.SelectedValue
cmd.Parameters.Add("@EventName", SqlDbType.Text).Value = EventNametxt.Text
cmd.Parameters.Add("@VenueName", SqlDbType.Text).Value = VenueLoDD.SelectedValue
cmd.Parameters.Add("@NumberOfGuests", SqlDbType.Int).Value = CInt(NumOfGtxt.Text)
cmd.Parameters.Add("@Date", SqlDbType.Int).Value = CInt(DateTxt.Text)
cmd.Parameters.Add("@ClientAddress", SqlDbType.Text).Value = txtAddress.Text
cmd.Parameters.Add("@WeddingName", SqlDbType.Text).Value = txtWedding.Text
cmd.Parameters.Add("@BuildingAddress", SqlDbType.Text).Value = txtBAddress.Text
Con.Open()
recordsAffected = cmd.ExecuteNonQuery
Con.Close()
【问题讨论】:
-
删除所有对
insert语句/参数中字段的引用,数据库会为您处理。 -
创建唯一的主键是数据库的工作if/when EventID 在数据库中是这样定义的。对于 MySQL,我认为是
AUTO_INCREMENT。 -
您标记了 MySql,但您在示例中使用了 SQL Server?
标签: mysql sql asp.net database vb.net