以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  SQL中SELECT中SubString参数传递不成功  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=34279)

--  作者:wufan
--  发布时间:2013/6/4 12:49:00
--  SQL中SELECT中SubString参数传递不成功

Dim kmdaima As WinForm.TextBox = e.Form.Controls("kemudaima")
cmd.CommandText = "Select Count(*) From {科目表} Where SubString(科目代码,1,LEN(kmdaima.text))= \'" & kmdaima.Text & "\'"
If cmd.ExecuteScalar > 0 Then
    Messagebox.show("删除科目失败,请先删除此科目的下级科目!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If

我想要做的就是当e.Form.Controls("kemudaima")中输入的代码在科目表中有子科目则不能执行删除

请高手给看一下,这段代吗中cmd.CommandText中有什么问题,为什么参数参数传递不过去,


--  作者:狐狸爸爸
--  发布时间:2013/6/4 12:54:00
--  

你用的内部表吧? 内部表的sql语法和access相同,你看看有些什么函数可以用:

http://www.foxtable.com/help/topics/0692.htm

 

显然没有SubString,而且动态合成表达时你也有问题,建议看看:

http://www.foxtable.com/help/topics/1284.htm

 

Dim txt As String = e.Form.Controls("kemudaima").Text

Dim cnt As Integer= txt.Length

cmd.CommandText = "Select Count(*) From {科目表} Where Mid(科目代码,1, "& cnt & ") = \'" & txt & "\'"
If cmd.ExecuteScalar > 0 Then
    Messagebox.show("删除科目失败,请先删除此科目的下级科目!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If

[此贴子已经被作者于2013-6-4 12:57:06编辑过]

--  作者:WUFAN
--  发布时间:2013/6/4 13:35:00
--  
不是呀,是SQL外部表呀,内部表我就不用这么费神了
--  作者:wufan
--  发布时间:2013/6/4 13:51:00
--  
弄好了,谢谢狐他爸,应该是把MID换成SUBSTRING就好了