为什么获取url参数id,作为update的条件,会“标准表达式中数据类型不匹配”
strSQL = "SELECT * FROM client_tbl WHERE clie_id= ' " & Request.QueryString( "clie_id ") & " ' "
Response.Write( "strSQL ")
objCmd = New Data.OleDb.OleDbCommand(strSQL, objCon)
' 获取DataReader对象
clientDR = objCmd.ExecuteReader() '源错误提示在这里。
' 获取数据表的记录
clientDR.Read()
clie_chname.Text = clientDR.Item( "clie_chname ")
clie_enname.Text = clientDR.Item( "clie_enname ")
clie_chadd.Text = clientDR.Item( "clie_chadd ")
......
clientDR.Close() '关闭datareader
objCon.Close()
从主页面client.aspx里的datagrid里点击任意一条记录,进入这个clientdetail.aspx?clie_id=***, 我想在这个页面里实现记录的显示,然后再更新的。现在就尝试这先显示这些记录,就遇到了问题。
------解决方案--------------------clie_id 应该是int的吧
strSQL = "SELECT * FROM client_tbl WHERE clie_id= " & Request.QueryString( "clie_id ")
------解决方案--------------------clie_id字段是什么类型,int类型的可以把单引号去掉
------解决方案--------------------sql语句拼接估计有问题
建议不要用拼接的方式,而是用参数形式
------解决方案--------------------同意!顶楼上的。
------解决方案--------------------strSQL = "SELECT * FROM client_tbl WHERE clie_id= ' " +Convert.ToInt32(Request.QueryString( "clie_id ")) + " ' "
------解决方案--------------------有的字段为空,不能强制转换
If clientDR.Item( "clie_chname ") <> DBNull.Value Then
clie_chname.Text = clientDR.Item( "clie_chname ")
Else
clie_chname.Text = String.Empty
End If
------解决方案--------------------有的字段肯定是空了,要判断一下的。
加个函数判断一下
Function showNull(value As String ) As String
If value = " " Then
Return "[N/A] "
Else
Return value
End If
End Function
------解决方案--------------------Request.QueryString得到的值是string的。
想办法用ConvertoInt32转换一下啥