如何自动生成vb.net中的id列 [英] how to autogenerate id column in vb.net
本文介绍了如何自动生成vb.net中的id列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在我的项目数据库中自动生成一个id列,我正在使用以下代码,但是它不起作用.
我在数据库中将"Id"列设置为"Int".
它给了我一个例外,因为从字符串到双精度的转换无效"
I want to auto generate an id column in my project database I am using the following code, but it is not working.
I have Set "Id" column as "Int" in my Database.
It is giving me an exception as "Conversion From String To Double is Not Valid"
Private Sub BtnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
conn.Open()
Dim query As String = "insert into Academic(Id,Session)values(@Id,@Session)"
If TxtSession.Text = "" Then
MsgBox("Please Insert the Session ", MsgBoxStyle.Information, "Grading System")
TxtSession.Text = ""
txtSessionId.Text = ""
TxtSession.Focus()
Else
Dim query1 As String = "select Id,Session from Academic Where Session='" & TxtSession.Text & "'"
cmd1 = New SqlCommand(query1, conn)
dr = cmd1.ExecuteReader()
If dr.Read = False Then
dr.Close()
Try
Try
Dim no As integer
Dim k as integer
cmd = New SqlCommand("select count(*) from Academic", conn)
no = cmd.ExecuteScalar
no = CInt(no) + 1
If no > 0 And no <= 9 Then
k = ("A000" + no)
ElseIf no > 9 And no <= 99 Then
k = ("A00" + no)
ElseIf no > 99 And no <= 999 Then
k = ("A0" + no)
Else
k = ("A" + no)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
cmd = New SqlCommand(query, conn)
dr.Close()
cmd.Parameters.AddWithValue("@Id", (k))
cmd.Parameters.AddWithValue("@Session", (TxtSession.Text))
cmd.ExecuteNonQuery()
MsgBox("Session Inserted", MsgBoxStyle.Information, "Grading System")
ds.Clear()
conn.Close()
LoadDataInDataGrid()
TxtSession.Text = ""
TxtSession.Focus()
Catch ex As Exception
MessageBox.Show(ex.ToString())
Finally
If conn.State = ConnectionState.Open Then
conn.Close()
End If
End Try
Else
MsgBox("Record Exists", MsgBoxStyle.Information, "Grading System")
TxtSession.Focus()
txtSessionId.Text = ""
End If
End If
conn.Close()
End Sub
推荐答案
是因为异常告诉您.
您正在尝试将字符串(k
)存储到int
字段(Id
)中.
将字段更改为字符串或更改代码以生成类型为int
的ID.
Is it as the exception is telling you.
You are trying to store a string (k
) into aint
field (Id
).
Either change the field to a string or change the code to generate id of typeint
.
这篇关于如何自动生成vb.net中的id列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文