使用 vb.net 在 sql 数据库中插入数字(如学生 ID、员工 ID)
Posted
技术标签:
【中文标题】使用 vb.net 在 sql 数据库中插入数字(如学生 ID、员工 ID)【英文标题】:insert number in sql database with vb.net (like student ID, Employee ID) 【发布时间】:2015-12-14 01:43:46 【问题描述】:我想做一个自动生成的交易号。每次我在 sql 数据库中插入数据时,都在 sql 数据库中,例如学生 ID 或员工 ID。我现在能做的就是插入数据。但我不知道如何创建交易号。每次我添加数据。
Dim query As String = String.Empty
query = "insert into marketingLog(TransCode,Endorser,Enrollee_Name,Course,Rebates,Trans_Date,CreatedBy,Status)" _
& "values(@transcode,@endorser,@name,@course,@rebates,@transdate,@user,@status)"
Using conn As New SqlConnection(dbUse.db)
conn.Open()
Using comm As New SqlCommand
With comm
.Connection = conn
.CommandType = CommandType.Text
.CommandText = query
.Parameters.Add("@endorser", SqlDbType.VarChar).Value = cmbEndorser.Text 'Endorser
.Parameters.Add("@name", SqlDbType.VarChar).Value = txtEnrolleeName.Text 'Enrolle_Name
.Parameters.Add("@course", SqlDbType.VarChar).Value = cmbCourse.Text 'Course
.Parameters.Add("@rebates", SqlDbType.Int).Value = lblRebate.Text 'Rebates
.Parameters.Add("@transdate", SqlDbType.DateTime).Value = DateAndTime.Now
.Parameters.Add("@user", SqlDbType.VarChar).Value = lblUsername.Text
.Parameters.Add("@status", SqlDbType.VarChar).Value = "Standby"
End With
Try
comm.ExecuteNonQuery()
conn.Close()
loadmyGrid()
loadDefault()
Catch ex As Exception
MessageBox.Show(ex.Message.ToString(), "Error Message")
End Try
End Using
End Using
TransCode 是我的列名。我想在每笔交易中添加 1,2,3,4,5。我用它作为我的交易号。
【问题讨论】:
那么,这里的问题是什么? 设为自动增量 那么只需在您的 SQL 表中添加一个自增列?不知道这个有什么困难...... 【参考方案1】:CREATE TABLE Persons
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)
您可以在表格中使用AUTO_INCREMENT
列。您无需为此列指定任何数据。此列的数据将在新记录插入时自动插入。
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
Check the fiddle here.
您的代码:您只需跳过将数据放入 Auto_Increment 列。
Dim query As String = String.Empty
//query = "Select Max(TranCode) From marketingLog";
Dim dtb As New DataTable;
Using conn As New SqlConnection(dbUse.db)
conn.Open()
query = "insert into marketingLog(Endorser,Enrollee_Name,Course,Rebates,Trans_Date,CreatedBy,Status)" _
& "values(@endorser,@name,@course,@rebates,@transdate,@user,@status)"
Using comm As New SqlCommand
With comm
.Connection = conn
.CommandType = CommandType.Text
.CommandText = query
.Parameters.Add("@endorser", SqlDbType.VarChar).Value = cmbEndorser.Text 'Endorser
.Parameters.Add("@name", SqlDbType.VarChar).Value = txtEnrolleeName.Text 'Enrolle_Name
.Parameters.Add("@course", SqlDbType.VarChar).Value = cmbCourse.Text 'Course
.Parameters.Add("@rebates", SqlDbType.Int).Value = lblRebate.Text 'Rebates
.Parameters.Add("@transdate", SqlDbType.DateTime).Value = DateAndTime.Now
.Parameters.Add("@user", SqlDbType.VarChar).Value = lblUsername.Text
.Parameters.Add("@status", SqlDbType.VarChar).Value = "Standby"
End With
Try
comm.ExecuteNonQuery()
conn.Close()
loadmyGrid()
loadDefault()
Catch ex As Exception
MessageBox.Show(ex.Message.ToString(), "Error Message")
End Try
End Using
End Using
【讨论】:
【参考方案2】:在将数据插入到您找到的表之前,您可能会做什么
Select Max(TranCode) From marketingLog
它会第一次返回一些整数或0。
您只需将其增加 1。
然后执行插入。
实际上我不知道如何在 vb 中编码,但我正在尝试在您的代码中编写逻辑,请参考它并尝试使用 vb 应用
例如
Dim query As String = String.Empty
query = "Select Max(TranCode) From marketingLog";
Dim dtb As New DataTable;
Using conn As New SqlConnection(dbUse.db)
conn.Open()
Using dad As New SqlDataAdapter(query, conn)
dad.Fill(dtb)
Dim intTransNo As Integer = Int32.Parse(dtb.Rows(0)(0).ToString()) + 1;
query = "insert into marketingLog(TransCode,Endorser,Enrollee_Name,Course,Rebates,Trans_Date,CreatedBy,Status)" _
& "values(@transcode,@endorser,@name,@course,@rebates,@transdate,@user,@status)"
Using comm As New SqlCommand
With comm
.Connection = conn
.CommandType = CommandType.Text
.CommandText = query
.Parameters.Add("@transcode", SqlDbType.VarChar).Value = intTransNo
.Parameters.Add("@endorser", SqlDbType.VarChar).Value = cmbEndorser.Text 'Endorser
.Parameters.Add("@name", SqlDbType.VarChar).Value = txtEnrolleeName.Text 'Enrolle_Name
.Parameters.Add("@course", SqlDbType.VarChar).Value = cmbCourse.Text 'Course
.Parameters.Add("@rebates", SqlDbType.Int).Value = lblRebate.Text 'Rebates
.Parameters.Add("@transdate", SqlDbType.DateTime).Value = DateAndTime.Now
.Parameters.Add("@user", SqlDbType.VarChar).Value = lblUsername.Text
.Parameters.Add("@status", SqlDbType.VarChar).Value = "Standby"
End With
Try
comm.ExecuteNonQuery()
conn.Close()
loadmyGrid()
loadDefault()
Catch ex As Exception
MessageBox.Show(ex.Message.ToString(), "Error Message")
End Try
End Using
End Using
【讨论】:
你能给我一些我工作中的代码吗,我真的不明白我该如何开始这部分(添加交易号,如学生证) 请帮忙,我不知道如何在这部分编码。我所知道的只是插入数据,但是当谈到他们所说的我的 transno 的“自动增加某些东西”时。 这是我最后的努力朋友,我在那里写了一些我没有测试过的代码,但你可以自己测试一下。我通过谷歌搜索写了这段代码。请尝试自行实现逻辑以上是关于使用 vb.net 在 sql 数据库中插入数字(如学生 ID、员工 ID)的主要内容,如果未能解决你的问题,请参考以下文章
如何从数据表 vb.net 向 sql server 数据库插入值
通过 vb.net 将日期插入 SQL Server 数据库