问题描述
我正在学习Visual Basic。现在,我无法将数据插入表中。我已经尝试了所有可能的查询,但仍然无法通过表单将数据插入表中。这是代码: 我表单中的代码:
Private Sub UpisiButt_Click(sender As Object,e As EventArgs) Handles UpisiButt.Click
InsertData()
End Sub
Private Sub InsertData()
sql.AddParam("@sifra",TbSifra.Text)
sql.AddParam("@naziv",TbNaziv.Text)
sql.AddParam("@user","Root")
sql.AddParam("@Skriven",0)
sql.ExecQuery("INSERT INTO dbo.VrsteNalogaTable (Id,Sifra,Naziv,user,DatumUpisa,Skriven) VALUES (@sifra,@naziv,@user,GETDATE(),@Skriven);")
MsgBox("Dodani podaci")
End Sub
End Class
我从中加载函数的类
Imports System.Data
Imports System.Data.sqlClient
Public Class VrsteNalogaClassNET
Private connection As New sqlConnection("SERVER=DESKTOP-SQMPH0E\JASIMsql;Database=VrsteNaloga;Trusted_Connection=True;User=Jasim;Pwd=1234;")
Private DBCmd As sqlCommand
Public DBDA As sqlDataAdapter
Public DBDT As DataTable
'Query Params
Public Params As New List(Of sqlParameter)
'Query Statistics
Public RecordCount As Integer
Public Exception As String
Public Sub New()
End Sub
'Allow connection string override
Public Sub New(ConnectionString As String)
connection = New sqlConnection(ConnectionString)
End Sub
' Execute query sub
Public Sub ExecQuery(Query As String)
'Reset query stats
RecordCount = 0
Exception = 0
Try
connection.open()
' CREATE DB Command
DBCmd = New sqlCommand(Query,connection)
' LOAD ParaMS INTO DB COMMAND
Params.ForEach(Sub(p) DBCmd.Parameters.Add(p))
' CLEAR ParaM
Params.Clear()
'EXECUTE COMMAND & FILL DATASET
DBDT = New DataTable
DBDA = New sqlDataAdapter(DBCmd)
RecordCount = DBDA.Fill(DBDT)
Catch ex As Exception
'CAPTURE ERROR
Exception = "ExecQuery Error: " & vbNewLine & ex.Message
Finally
If connection.State = ConnectionState.Open Then connection.Close()
End Try
End Sub
'ADD ParaMS
Public Sub AddParam(Name As String,Value As Object)
Dim NewParam As New sqlParameter(Name,Value)
Params.Add(NewParam)
End Sub
End Class
注意:我可以选择数据并在网格上显示,麻烦是当我尝试通过表单插入时。
解决方法
替换此
DBDT = New DataTable
DBDA = New SqlDataAdapter(DBCmd)
RecordCount = DBDA.Fill(DBDT)
有了这个
RecordCount = DBCmd.ExecuteNonQuery()
有关解释-请参阅我在您的问题下留下的评论
注意: RecordCount
将返回所有受影响记录的编号,即使那些受触发器影响的记录(如果存在)。存储过程记录数将始终为-1