none
SqlCommand1.CommandText有特殊符号 RRS feed

  • 问题

  • SqlCommand1.CommandText有特殊符号  单引号  改怎么写.或则改用其他的什么方法呢.比如下面的这条SQL语句
    select er_Employees.name  , att_OriginalDataList.cardno , att_OriginalDataList.KDateTime from att_OriginalDataList
    left join per_Employees  on per_Employees.ID=att_OriginalDataList.EM_ID
    where att_OriginalDataList.KDateTime Between '2008-04-10' and '2009-04-15' and per_Employees.Code=N'S00369'
    2009年8月21日 17:25

答案

  • 按楼上的改了又提示   必须声明标量变量 "@chacungonghao"。


    您好,这个错误提示,说明未申明@chacungonghao,请确认chaxuncmd.Parameters.AddWithValue("@chaxungonghao", Textgonghao.Text.ToUpper)中的@chaxungonghao与Sql语句中的@chaxungonghao一样,没有错误。
    可以把改后的代码贴出来看看。
    2009年8月26日 15:16

全部回复

  • SQL中通配符、转义符与括号的使用

    http://www.knowsky.com/302608.html
    【孟子E章】
    2009年8月21日 23:02
    版主
  • 另外可以参考

    http://msdn.microsoft.com/zh-cn/library/bb510741.aspx

    左边标明  (通配符 -- 需匹配的字符)
    的条目
    【孟子E章】
    2009年8月21日 23:06
    版主
  • 一般的如果有单引号,直接在单引号前面再加一个单引号,

    就是两个单引号就可以了.
    详细的转义字符可看斑竹发的地址
    I am Rayman Zhai
    2009年8月22日 4:10
  • 可以使用Sqlparameter


    http://feiyun0112.cnblogs.com/
    2009年8月24日 3:07
    版主
  • 打算改用存储过程了.太多字符串连接的的太麻烦.还喜欢出什么类型转换的错误.  不知道用存储过程算不算杀鸡用牛刀呀

    另外如果sqlcommand.comandtext里用sql语句参数代替时间和工号也会出现类型转换错误的提示吗?

    2009年8月24日 15:44
  • 打算改用存储过程了.太多字符串连接的的太麻烦.还喜欢出什么类型转换的错误.  不知道用存储过程算不算杀鸡用牛刀呀

    另外如果sqlcommand.comandtext里用sql语句参数代替时间和工号也会出现类型转换错误的提示吗?


    不会,只要你传的是正确的
    http://feiyun0112.cnblogs.com/
    2009年8月25日 1:04
    版主
  • sharevar.sqllianjie.Open()
                Dim chaxuncmd As New SqlCommand
                chaxuncmd.Connection = sharevar.sqllianjie
                chaxuncmd.CommandType = CommandType.Text
                chaxuncmd.CommandText = "select per_Employees.name  , att_OriginalDataList.cardno , att_OriginalDataList.KDateTime from att_OriginalDataList left join per_Employees  on per_Employees.ID=att_OriginalDataList.EM_ID where att_OriginalDataList.KDateTime Between @chaxun1 and  @chaxun2 and per_Employees.Code like '%' + textgonghao.text.toupper + '%'"
                chaxuncmd.Parameters.AddWithValue("@chaxun1", dakariqi.Text + " " + dakashijian.Text)
                chaxuncmd.Parameters.AddWithValue("@chaxun2", chaxunriqi.Text + " " + chaxunshijian.Text)
                chaxuncmd.Parameters.AddWithValue("@chaxungonghao", Textgonghao.Text.ToUpper)
                MsgBox(chaxuncmd.CommandText)
                chaxuncmd.ExecuteNonQuery()
                MsgBox("ok")
                sharevar.sqllianjie.Close()

    改参数变量的方式了.字符串还真难写呀
    现在问题就出在command.commandtext上,不要最后的LIKE条件就可以正常运行.加了LIKE语句后出错误提示:无法绑定由多个部分组成的标识符extgonghao.text.toupper"。
    2009年8月25日 13:42
  • 您好,把like '%' + textgonghao.text.toupper + '%'
       改为:like '%' + @chaxungonghao + '%'
    2009年8月25日 16:42
  • 按楼上的改了又提示   必须声明标量变量 "@chacungonghao"。

    2009年8月26日 13:33
  • 用存储过程做出来了,没有问题.但是我还是想弄清楚COMMANDTEXT字符串什么地方写的有错误

    2009年8月26日 14:55
  • 按楼上的改了又提示   必须声明标量变量 "@chacungonghao"。


    您好,这个错误提示,说明未申明@chacungonghao,请确认chaxuncmd.Parameters.AddWithValue("@chaxungonghao", Textgonghao.Text.ToUpper)中的@chaxungonghao与Sql语句中的@chaxungonghao一样,没有错误。
    可以把改后的代码贴出来看看。
    2009年8月26日 15:16
  • 用参数搞可以.按楼上的提示才发现打错了一个字符   应该是X的打成了C.

    2009年8月27日 12:27
  • 用参数搞可以.按楼上的提示才发现打错了一个字符   应该是X的打成了C.


    OK. 请及时结贴方便后来人,谢谢!
    2009年8月27日 13:22