我在一家律师事务所工作。
我有一个包含所有案例的表格,格式为YY-99999-ABC
,其中ABC
是Judge的首字母。我的目标是在没有法官姓名首字母的情况下输入YY-99999
。
所以我的查询是这样的:
SELECT * FROM tblcase
WHERE (CaseNm LIKE ? N'%')
当我选择预览数据时,我得到一行
然后当我测试我的代码时:
Dim caseadapter As New CWDataSetTableAdapters.CaseTableAdapter
Dim casedt As CWDataSet.CaseDataTable
Dim mCaseNum As String
mCaseNum = txtCaseNum.Text
casedt = caseadapter.GetCaseByCaseNum(mCaseNum)
If casedt.Rows.Count > 0 Then
'do my thing
Else
Response.Write(mCaseNum)
Response.Write(Len(mCaseNum).ToString)
End If
我现在得到行。 如果我将查询更改为CaseNum =?然后我输入整个案例编号,它有效。
帮助,帮助,F1,F1,F1 ......
答案 0 :(得分:0)
您需要检查SQL Lite LIKE
syntaxis
http://sqlite.org/lang_expr.html#like
SELECT FROM table_name
WHERE column LIKE 'XXXX%'
这是一个有附加样本的教程
答案 1 :(得分:0)
固定。
解决方案是更改WHERE子句:
在哪里RTRIM(CaseNum)喜欢?
然后在我的代码中:
mCaseNum = txtCaseNum.Text& “-___”
CaseNum是VARCHAR(50) 我读了这篇文章https://msdn.microsoft.com/en-us/library/ms179859.aspx并且有这个例子:
- 与nchar列匹配的Unicode模式 CREATE TABLE t(col1 nchar(30)); 插入价值观('罗伯特金'); 选择 * 从T col1喜欢'%King'; - 没有返回行
- 与nchar列和RTRIM匹配的Unicode模式 CREATE TABLE t(col1 nchar(30)); 插入价值观('罗伯特金'); 选择 * 从T 在哪里RTRIM(col1)喜欢'%King'; - 返回1行