Try
conn = New SqlConnection(strcon)
conn.Open()
Dim str As String = "select * from MYTABLE where Year >='#" & Txtfromyear_reprt.Text & "#' and Year <='#" & Txttoyear_reprt.Text & "#'"
da = New SqlDataAdapter(str, conn)
Dim ds As New DataSet
da.Fill(ds, "MYTABLE")
DgvReport.DataSource = ds.Tables("MYTABLE")
da.Dispose()
conn.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Run Code Online (Sandbox Code Playgroud)
我正在处理我的学校项目,但我遇到了一个无法解决的问题.我在搜索按钮中编写了此代码,但是当我在运行时单击它时,我的数据网格中没有显示任何数据.
我想要的是当我点击它时我想使用两个文本框将所有数据从mytable显示到Datagrid视图.我有两个文本框,txtfromyear以及一个数据类型txttoyear的数据库列.Yearnvarchar(50)
请帮帮我,谢谢你.
不要使用字符串连接来构建您的SQL查询,绝对不要!
你是开放的SQL注入,没有任何借口.而是使用sql参数:
Dim dateFrom as Date
Dim dateTo as Date
Dim validFromDate = Date.TryParse(Txtfromyear_reprt.Text.Trim(), dateFrom)
Dim validToDate = Date.TryParse(Txttoyear_reprt.Text.Trim(), dateTo)
Run Code Online (Sandbox Code Playgroud)
现在,如果用户未提供有效日期,则使用有意义的消息退出此方法.您可以检查validFromDate和validToDate哪些是布尔值.其余代码执行If validFromDate AndAlso validToDate:
Dim str As String = "select * from MYTABLE where Year >= @fromyear and Year <= @toyear"
da = New SqlDataAdapter(str, conn)
da.SelectCommand.Parameters.Add("@fromyear", SqlDbType.DateTime).Value = dateFrom
da.SelectCommand.Parameters.Add("@toyear", SqlDbType.DateTime).Value = dateTo
' now you can use da.Fill(ds, "MYTABLE") safely
Run Code Online (Sandbox Code Playgroud)
我刚刚看到你varchar用来存放datetimes.为什么?将其修复在数据库中.