当前位置:编程学习 > C#/ASP.NET >>

C#写SQL语句的问题

       这个是别人在 C#中写的 SQL 语句,           

                    sSQL.Remove(0, sSQL.Length);
                    sSQL.AppendLine("SELECT DEPT_CD,DEPT_NAME AS DEPT_NAME FROM ZAA020T");
                    sSQL.AppendLine("WHERE TREE_CD<>N'$' AND TREE_CD<>N'*'");
                    sSQL.AppendLine("AND DEPT_CD NOT IN('1001','1002','1003','1004','3000','C100','Z999')");
                    //sSQL.AppendLine("ORDER BY DEPT_CD");
                    sSQL.AppendLine("ORDER BY PRT_PRY");

我发现 这样的SQL语句 不好管理。 他们是在SQL中写好 测试好之后 一行一行的 ,粘贴到  sSQL.AppendLine 语句中
发出来的只是少数 , 多的 可以有 50多行, 

是否有其他的好方法,可以 一次性 写入 C#中 SQL语句。 

新手谢谢  --------------------编程问答-------------------- 写一行不行吗? --------------------编程问答-------------------- 太长就别在C#里写,用存储过程 --------------------编程问答-------------------- 太长就别在C#里写,用存储过程 --------------------编程问答-------------------- 直接写存储过程嘛!~~~

或者是建视图!~~ --------------------编程问答-------------------- 要是非得在C#里写,只能一行一行的string... --------------------编程问答--------------------

sSQL.Append(@"SELECT DEPT_CD,DEPT_NAME AS DEPT_NAME FROM ZAA020T
WHERE TREE_CD <>N'$' AND TREE_CD <>N'*'
AND DEPT_CD NOT IN('1001','1002','1003','1004','3000','C100','Z999')
ORDER BY PRT_PRY");
--------------------编程问答-------------------- 看来 只有写存储过程 应该是比较方便了 ,谢谢各位的答案,  --------------------编程问答-------------------- 对存储过程,还安全 --------------------编程问答-------------------- 这样不行吗?--
eg:
string str_sql="SELECT DEPT_CD,DEPT_NAME AS DEPT_NAME FROM ZAA020T";
str_sql+="WHERE TREE_CD <>N'$' AND TREE_CD <>N'*'";
str_sql+="AND DEPT_CD NOT IN('1001','1002','1003','1004','3000','C100','Z999')";
str_sql+="ORDER BY PRT_PRY)";
--------------------编程问答-------------------- 储存在一个变量里。 --------------------编程问答-------------------- 我也是这样写    不过一般的太长了的话   觉得还是放在存储过程里面好一点
引用 9 楼 goonlove0 的回复:
这样不行吗?--
eg:
C# codestring str_sql="SELECT DEPT_CD,DEPT_NAME AS DEPT_NAME FROM ZAA020T";
str_sql+="WHERE TREE_CD <>N'$' AND TREE_CD <>N'*'";
str_sql+="AND DEPT_CD NOT IN('1001','1002','1003','1004','3000','C100','Z999')";
str_sql+="ORDER BY PRT_PRY)";
--------------------编程问答-------------------- 用excel的宏作个小工具,将SQL写好后
放在excel里,直接生成C#代码,不就好了吗!
一秒中就好,不用你自己一句一句的写去

如:
StringBuilder sbInsSql = new StringBuilder();
SELECT DISTINCT T10.SPEC_CODE AS SPEC_CODE     sbInsSql.Append("  SELECT DISTINCT T10.SPEC_CODE AS SPEC_CODE    ");
FROM TA4010 T10,  TA4011 T11, TA4012 T12 sbInsSql.Append("  FROM TA4010 T10,  TA4011 T11, TA4012 T12");
WHERE T11.PRODUCTION_FAMILY_CODE = '520' sbInsSql.Append("  WHERE T11.PRODUCTION_FAMILY_CODE = '520'");
AND T10.ADOPT_STATUS = 'R' sbInsSql.Append("  AND T10.ADOPT_STATUS = 'R'");
AND T10.ADOPT_DATE <= '2008/02/01' sbInsSql.Append("  AND T10.ADOPT_DATE <= '2008/02/01'");
AND NVL(T10.ABOLISH_DATE, TO_DATE('1900/01/01', 'YYYY/MM/DD')) >=TO_DATE('2008/02/01', 'YYYY/MM/DD') sbInsSql.Append("  AND NVL(T10.ABOLISH_DATE, TO_DATE('1900/01/01', 'YYYY/MM/DD')) >=TO_DATE('2008/02/01', 'YYYY/MM/DD')");
AND T10.RESTRICTION_CODITION='???' sbInsSql.Append("  AND T10.RESTRICTION_CODITION='???'");

补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,