[英]The data types varchar(max) and text are incompatible in the equal to operator. in SQL Server2005 how to solve?
[英]How to resolve this error: The data types text and varchar are incompatible in the equal to operator?
我在Microsoft sql服務器管理工作室中有一個名為Userdetails的表,其列名稱為[Email address]
,其數據類型為varchar(50)
。 現在,我正在jsp中訪問此變量以將該變量與另一個名為email2
的數據類型為text的變量進行比較。不幸的是,我遇到了一個錯誤。
這只是我的代碼的一部分。
String str=request.getParameter("email2");
ResultSet rs = st.executeQuery("select [Email address],Username from Userdetails where [Email address]='" + str + "');
第一個問題:直接在SQL中包含值。 不要那樣做-只是要求進行SQL注入攻擊 。
而是使用帶有參數值的預備語句。 您可能會發現這足以解決問題。
PreparedStatement pst = conn.prepareStatement
("select [Email address], Username from Userdetails where [Email address]=?");
// This may give the same problem...
pst.setString(1, str);
// but this may fix it
// pst.setClob(1, new StringReader(str));
ResultSet results = pst.executeQuery();
(顯然,只能以一種或另一種方式設置參數。)
不要忘記在finally
塊中關閉該語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.