如何将选中项从checkedlistbox插入SQL数据库?
我正在尝试将选中的项目从checkedlistbox保存到我的SQL数据库,并从同一SQL数据库填充我的checkedlistbox,到目前为止,我能够从checkedlistbox中获取选中项的文本,并将其保存为字符串,然后使用标签显示是否获取选中项的文本及其工作情况,但当我尝试在数据库中插入选中数据时,ExecuteOnQuery()方法上出现错误“Connection property尚未初始化” 导入系统数据 导入System.Data.SqlClient 公开课表格1 私有子表单1_Load(发送方作为对象,e作为事件参数)处理MyBase.Load Dim da作为新的SqlDataAdapter Dim dt作为新数据表 Dim connectionString As String=“服务器=桌面-V12PTAV;数据库=测试;用户Id=sa;密码=wills8877” 将conn用作新的SqlConnection(connectionString) conn.ConnectionString=连接字符串 康涅狄格州公开赛 作为字符串的Dim str str=“从sem中选择sem1” da=新的SqlDataAdapter(str,conn) dt=新数据表 da.填充(dt) CheckedListBox1.DataSource=dt CheckedListBox1.DisplayMember=“sem1” 康涅狄格州关闭 终端使用 端接头 私有子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击 作为字符串的Dim str Dim cmd作为新的SqlCommand 将sql设置为字符串 Dim connectionString As String=“服务器=桌面-V12PTAV;数据库=测试;用户Id=sa;密码=wills8877” 将conn用作新的SqlConnection(connectionString) 康涅狄格州公开赛 检查为对象的项目 对于在CheckedListBox1.CheckedItems中签入的每个项目 str=itemChecked.item(“sem1”).ToString Label1.Text=str sql=“插入到pretab(pre)值(“+str+”)” cmd.ExecuteNonQuery() 下一个 康涅狄格州关闭 终端使用 端接头 末级如何将选中项从checkedlistbox插入SQL数据库?,sql,vb.net,Sql,Vb.net,我正在尝试将选中的项目从checkedlistbox保存到我的SQL数据库,并从同一SQL数据库填充我的checkedlistbox,到目前为止,我能够从checkedlistbox中获取选中项的文本,并将其保存为字符串,然后使用标签显示是否获取选中项的文本及其工作情况,但当我尝试在数据库中插入选中数据时,ExecuteOnQuery()方法上出现错误“Connection property尚未初始化” 导入系统数据 导入System.Data.SqlClient 公开课表格1 私有子表单1_L
问题可能是由您的查询语法引起的。试试这个:
sql = "insert into pretab(pre) values(@str)"
cmd.Parameters.AddWithValue("@str", str)
cmd.ExecuteNonQuery()
哎呀。。我刚意识到你忘了用连接分配你的命令。因此,请尝试添加以下语句:
cmd = New SqlCommand(sql, conn)
在执行命令之前。最后的代码应该是这样的:
sql = "insert into pretab(pre) values(@str)"
cmd = New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@str", str)
cmd.ExecuteNonQuery()
问题可能是由查询语法引起的。试试这个:
sql = "insert into pretab(pre) values(@str)"
cmd.Parameters.AddWithValue("@str", str)
cmd.ExecuteNonQuery()
哎呀。。我刚意识到你忘了用连接分配你的命令。因此,请尝试添加以下语句:
cmd = New SqlCommand(sql, conn)
在执行命令之前。最后的代码应该是这样的:
sql = "insert into pretab(pre) values(@str)"
cmd = New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@str", str)
cmd.ExecuteNonQuery()
首先,我会在一个类中进行数据操作,例如(注意,我关注的是插入)。您需要将服务器和目录更改为SQL server上的服务器和目录
Imports System.Data.SqlClient
Public Class Operations
Private Server As String = "KARENS-PC"
Private Catalog As String = "CheckedListBoxDatabase"
Private ConnectionString As String = ""
Public Sub New()
ConnectionString = $"Data Source={Server};Initial Catalog={Catalog};Integrated Security=True"
End Sub
Public Function Read() As DataTable
' read rows for checked listbox here
End Function
Public Sub Insert(ByVal sender As List(Of String))
Using cn As SqlConnection = New SqlConnection With {.ConnectionString = ConnectionString}
Using cmd As SqlCommand = New SqlCommand With {.Connection = cn, .CommandText = "insert into pretab(pre) values (@pre)"}
cmd.Parameters.Add(New SqlParameter With {.ParameterName = "@pre", .SqlDbType = SqlDbType.NVarChar})
cn.Open()
For Each item In sender
cmd.Parameters("@pre").Value = item
cmd.ExecuteNonQuery()
Next
End Using
End Using
End Sub
End Class
表格代码
Public Class Form1
Private ops As New Operations
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Result = CheckedListBox1.Items.OfType(Of String).Where(Function(item, index) CheckedListBox1.GetItemChecked(index)).ToList
ops.Insert(Result)
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
CheckedListBox1.DataSource = ops.Read
CheckedListBox1.DisplayMember = "sem1"
End Sub
End Class
首先,我会在一个类中进行数据操作,例如(注意,我关注的是插入)。您需要将服务器和目录更改为SQL server上的服务器和目录
Imports System.Data.SqlClient
Public Class Operations
Private Server As String = "KARENS-PC"
Private Catalog As String = "CheckedListBoxDatabase"
Private ConnectionString As String = ""
Public Sub New()
ConnectionString = $"Data Source={Server};Initial Catalog={Catalog};Integrated Security=True"
End Sub
Public Function Read() As DataTable
' read rows for checked listbox here
End Function
Public Sub Insert(ByVal sender As List(Of String))
Using cn As SqlConnection = New SqlConnection With {.ConnectionString = ConnectionString}
Using cmd As SqlCommand = New SqlCommand With {.Connection = cn, .CommandText = "insert into pretab(pre) values (@pre)"}
cmd.Parameters.Add(New SqlParameter With {.ParameterName = "@pre", .SqlDbType = SqlDbType.NVarChar})
cn.Open()
For Each item In sender
cmd.Parameters("@pre").Value = item
cmd.ExecuteNonQuery()
Next
End Using
End Using
End Sub
End Class
表格代码
Public Class Form1
Private ops As New Operations
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Result = CheckedListBox1.Items.OfType(Of String).Where(Function(item, index) CheckedListBox1.GetItemChecked(index)).ToList
ops.Insert(Result)
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
CheckedListBox1.DataSource = ops.Read
CheckedListBox1.DisplayMember = "sem1"
End Sub
End Class
您似乎没有提供与该命令的连接。你的代码是点击按钮
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim str As String
Dim cmd As New SqlCommand
Dim sql As String
Dim connectionString As String = "Server=DESKTOP-V12PTAV ;Database=test ;User Id=sa ;Password=wills8877"
Using conn As New SqlConnection(connectionString)
conn.Open()
Dim itemChecked As Object
For Each itemChecked In CheckedListBox1.CheckedItems
str = itemChecked.item("sem1").ToString
Label1.Text = str
sql = "insert into pretab(pre) values('" + str + "')"
cmd.ExecuteNonQuery()
Next
conn.Close()
End Using
End Sub
您需要做的是在cmd.ExecuteNonQuery()
之前为它提供一个连接cmd.connection=connectionString
这将删除
cmd.ExecuteNonQuery()
错误。您似乎没有提供与该命令的连接。你的代码是点击按钮
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim str As String
Dim cmd As New SqlCommand
Dim sql As String
Dim connectionString As String = "Server=DESKTOP-V12PTAV ;Database=test ;User Id=sa ;Password=wills8877"
Using conn As New SqlConnection(connectionString)
conn.Open()
Dim itemChecked As Object
For Each itemChecked In CheckedListBox1.CheckedItems
str = itemChecked.item("sem1").ToString
Label1.Text = str
sql = "insert into pretab(pre) values('" + str + "')"
cmd.ExecuteNonQuery()
Next
conn.Close()
End Using
End Sub
您需要做的是在cmd.ExecuteNonQuery()
之前为它提供一个连接cmd.connection=connectionString
这将删除
cmd.ExecuteNonQuery()
错误。我这样做了:-str=itemChecked.item(“sem1”).ToString Label1.Text=str sql=“insert into pretab(pre)values(@str)”cmd.Parameters.AddWithValue(@str),str)cmd.ExecuteNonQuery()对不起,我修改了上面的答案。请参考它,并带回您的发现。Cheerri这样做了:-str=itemChecked.item(“sem1”).ToString Label1.Text=str sql=“插入pretab(pre)值(@str)”cmd.Parameters.AddWithValue(@str”,str)cmd.ExecuteNonQuery(),对不起,我修改了上面的答案。请参考它,并带回您的发现。干杯?你确定吗?不是。请使用正确的tags.MySQL?你确定吗?不是。请使用正确的标签。