JBTALKS.CC

标题: SqL comand的问题想请教各位大大 [打印本页]

作者: TmXiaOChAo    时间: 2012-3-14 09:38 PM
标题: SqL comand的问题想请教各位大大
本帖最后由 TmXiaOChAo 于 2012-3-14 09:54 PM 编辑

SELECT * FROM ' "+ tableparameter+'" WHERE IDN = "+ IDN+"
请问我哪里写错了? 我的parametertae是string来的
作者: 宅男-兜着走    时间: 2012-3-14 10:13 PM
SQL 没出资料还是program 报错?

如果是sql 的问题, 就把你的 sql 句子放进 mssql management studio run 看看就懂那里错了。

program 问题我相信你自己看得出。
作者: Super-Tomato    时间: 2012-3-14 10:40 PM
SQL 没出资料还是program 报错?

如果是sql 的问题, 就把你的 sql 句子放进 mssql management studio r ...
宅男-兜着走 发表于 2012-3-14 10:13 PM



他是 ' 與 “ 不會應用上的問題
作者: 宅男-兜着走    时间: 2012-3-14 10:45 PM
哦, 放反了。
不过 VS  会很严重的报错。
不可能看不出吧。
作者: TmXiaOChAo    时间: 2012-3-14 10:48 PM
回复 4# 宅男-兜着走


    这里打错了 我的code是这样
string tblLDJ = HiddenField1.Value.Trim();
       Label3.Text = TotalID(tblLDJ).ToString();
private int TotalID(string tableName){
        CurrentMember = (ObjMember)Session["CurrentMember"];
        int tempMemberIDN = Int32.Parse(CurrentMember.tblMember.Rows[0]["IDN"].ToString());
        DT = dal.tblGame_RetrieveAmountByMemberIDN(tableName , tempMemberIDN);
        int Count = Int32.Parse(DT.Rows.Count.ToString());
        return Count;
    }
然后dal 那里的code是将
public DataTable tblGame_RetrieveAmountByMemberIDN(string tableName, int tempMemberIDN)
       {
           DataTable ItemsDT = DB.CMD("SELECT * FROM '"+tableName+"' WHERE IDN ="+tempMemberIDN+"");
           return ItemsDT;
       }
作者: TmXiaOChAo    时间: 2012-3-14 10:49 PM
回复 3# Super-Tomato


    这里打错了 我的code是这样
string tblLDJ = HiddenField1.Value.Trim();
       Label3.Text = TotalID(tblLDJ).ToString();
private int TotalID(string tableName){
        CurrentMember = (ObjMember)Session["CurrentMember"];
        int tempMemberIDN = Int32.Parse(CurrentMember.tblMember.Rows[0]["IDN"].ToString());
        DT = dal.tblGame_RetrieveAmountByMemberIDN(tableName , tempMemberIDN);
        int Count = Int32.Parse(DT.Rows.Count.ToString());
        return Count;
    }
然后dal 那里的code是将
public DataTable tblGame_RetrieveAmountByMemberIDN(string tableName, int tempMemberIDN)
       {
           DataTable ItemsDT = DB.CMD("SELECT * FROM '"+tableName+"' WHERE IDN ="+tempMemberIDN+"");
           return ItemsDT;
       }
作者: 宅男-兜着走    时间: 2012-3-14 10:50 PM
你的string output是
SELECT * FROM 'tablename' WHERE IDN=tempMemberIDN

请把 single quote 拿掉。
作者: TmXiaOChAo    时间: 2012-3-14 10:54 PM
回复 7# 宅男-兜着走


    大大
是将吗?
("SELECT * FROM "tableName" WHERE IDN ="+tempMemberIDN+""); 不过这个会error @@
作者: 宅男-兜着走    时间: 2012-3-14 10:55 PM
回复 8# TmXiaOChAo


    ("SELECT * FROM " +tableName+" WHERE IDN ="+tempMemberIDN);
这样才对。

因为 string 必须要 start from quote, end from quote。
作者: TmXiaOChAo    时间: 2012-3-14 11:03 PM
回复 9# 宅男-兜着走


    大大我想问 为什么我传来的tableparameter 是 string 然后 我的sqlcomand table那里要将写 "+tableName+" 而不是 ‘“+tableName+”’呢?
string不是外面要加多一个这个 ‘ 吗? int 才是 一个" 而已不是吗?
作者: 宅男-兜着走    时间: 2012-3-14 11:14 PM
回复  宅男-兜着走


    大大我想问 为什么我传来的tableparameter 是 string 然后 我的sqlcomand tab ...
TmXiaOChAo 发表于 2012-3-14 11:03 PM


   我想你把 program 的string param, 跟sql 的string param 搞乱了。
   正常的sql 是酱, SELECT * FROM table WHERE stringParam='stringParam'    << 这样的情况才要  
                                  SELECT * FROM ‘table’ WHERE stringParam='stringParam'  << 错的
   
    没错, 如果你pass parameter, 你的string 要加 '   ',
    但是, 你的问题是, 你的table 名有放 ‘ ’ 这样是错的。
作者: Super-Tomato    时间: 2012-3-14 11:21 PM
回复  Super-Tomato


    这里打错了 我的code是这样
string tblLDJ = HiddenField1.Value.Trim();
...
TmXiaOChAo 发表于 2012-3-14 10:49 PM



並不是你打錯的問題,而看了你的寫法就知道你不知道什麽時候該用 ' 和 ”
所以那天我才提到說你不了解 string 的用法
作者: TmXiaOChAo    时间: 2012-3-14 11:22 PM
回复 11# 宅男-兜着走


    所以说如果parameter是传table名字的话就不能加  ' 了对吗? 如果是传data的才加 ' 对吗?
作者: TmXiaOChAo    时间: 2012-3-14 11:23 PM
回复 12# Super-Tomato


    因为我朋友教我 string 的话 前面和后面就要加 ' " 这个 而 int 就只是 “ 就好了.. 所以我以为是string就加上去了. 哪里知道data的和tablename的不一样 @@
作者: Super-Tomato    时间: 2012-3-14 11:26 PM
回复  Super-Tomato


    因为我朋友教我 string 的话 前面和后面就要加 ' " 这个 而 int 就只是 “ 就 ...
TmXiaOChAo 发表于 2012-3-14 11:23 PM



那麽你就必須去看看 sql 的格式,一般在條件性部分的文字才需要加上 ‘ 做比較,而普通的文字輸出就如你朋友說的那樣
作者: 宅男-兜着走    时间: 2012-3-14 11:28 PM
回复  宅男-兜着走


    所以说如果parameter是传table名字的话就不能加  ' 了对吗? 如果是传data的才 ...
TmXiaOChAo 发表于 2012-3-14 11:22 PM



    嗯, 没错。 这个是sql 的format。
    跟program 比起来又是另外个回事了。
作者: TmXiaOChAo    时间: 2012-3-15 12:15 AM
回复 15# Super-Tomato

谢谢大大指导
作者: TmXiaOChAo    时间: 2012-3-15 12:15 AM
回复 16# 宅男-兜着走


   
谢谢大大指导




欢迎光临 JBTALKS.CC (https://jbtalks.my/) Powered by Discuz! X2.5