[英]How to execute query and store data of a column in a variable in VB.net?
我有以下代码,我试图在其中执行查询并将数据库中的值存储在两个变量中。 根据变量,我想勾选一个复选框并向文本框添加一些文本。
这是代码:
Try
Dim cn As SqlConnection
Dim strCnn As String = ConfigurationManager.ConnectionStrings("agilityconnectionstring").ConnectionString
cn = New SqlConnection(strCnn)
cn.Open()
Dim comm As New SqlCommand("select IsCompleted, CompletionDate from managerchecklist where ID = 53 and QuestionID = 1", cn)
comm.CommandType = CommandType.Text
Dim ds As SqlDataReader
ds = comm.ExecuteReader()
If ds.HasRows Then
While ds.Read
IsComplete = ds.Item("IsCompleted").ToString()
CompleteDate = ds.Item("CompletionDate").ToString()
identifytasks_done.Checked = True
identifytasks_date.Attributes.Add("style", "display:block")
identifytasks_date.Text = CompleteDate
End While
End If
''Close your connections and commands.
cn.Close()
Catch ex As Exception
''Handle error if any
End Try
但我似乎在某个地方出错了。 谁能帮帮我吗?
根据变量,我想勾选一个复选框并向文本框添加一些文本。
有一个If语句来检查变量是否完整
If IsComplete = "complete" Then identifytasks_done.Checked = True identifytasks_date.Attributes.Add("style", "display:block") identifytasks_date.Text = CompleteDate End If
将检查移至 SQL 语句
Dim comm As New SqlCommand( "select IsCompleted, CompletionDate from " + "managerchecklist where ID = 53 and QuestionID = 1 and " "IsCompleted = 'complete'", cn)
考虑使用参数 SQL 代替,以防止 SQL 注入
我会为 SQL 查询和参数推荐Using
语句。
从 SQL 获取值,然后使用 IF 语句根据这些值执行任何操作。
假设 IsCompleted 是 SQL 中的位字段......
Dim isCompleted As Boolean
Dim completedDate As Date
Using con As New SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("agilityconnectionstring").ConnectionString)
Using cmd As New SqlClient.SqlCommand("SELECT [IsCompleted], [CompletionDate] FROM managerchecklist where [ID] = @managerchecklistID and [QuestionID] = @questionID", con)
cmd.Parameters.Add("@managerchecklistID", SqlDbType.Int).Value = 53
cmd.Parameters.Add("@questionID", SqlDbType.Int).Value = 1
con.Open()
Using reader As SqlClient.SqlDataReader = cmd.ExecuteReader
While reader.Read
'Index in order of the columns in the SELECT statement
If reader.GetSqlBoolean(0).IsNull = False Then isCompleted = reader.GetSqlBoolean(0)
If reader.GetSqlDateTime(1).IsNull = False Then completedDate = reader.GetSqlDateTime(1)
End While
End Using
End Using
End Using
If isCompleted Then
identifytasks_done.Checked = True
identifytasks_date.Attributes.Add("style", "display:block")
identifytasks_date.Text = completedDate
End If
您可以将它放在它自己的 Sub 中, managerchecklistID
和questionID
为 arguments 然后使用 arguments 设置参数值
cmd.Parameters.Add("@managerchecklistID", SqlDbType.Int).Value = managerchecklistID
cmd.Parameters.Add("@questionID", SqlDbType.Int).Value = questionID
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.