菜鸟系列:如何将一段SQL语句(多条),分割为SQL语句数组?

JzeroBiao 2006-04-22 04:22:05
例子
--------------------------------------------------
string sSqls = "select * from abc" +
"insert into abc values(a1,b2,c3)" +
"delete from abc where a1=1";

分割为

string sSqls[] = new string[3];
sSqls[0] = "select * from abc";
sSqls[1] = "insert into abc values(a1,b2,c3)";
sSqls[2] = "delete from abc where a1=1";
...全文
404 12 点赞 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zlkingdom 2006-04-25
还是应该按SQL的关键字去进行分割,然后对每个分割后的字符串做一下替换处理,替换掉一下特殊字符,确保组合在一起执行的时候不会出错
  • 打赏
  • 举报
回复
Knight94 2006-04-25
to 那查询分析器如何做呢?有特殊符号我问来干什么?

如果想要做出查询分析器那种功能的,可不是一小段代码能实现的,你相当于做一个语法分析器,去解析sql语句,即按照sql规则去解析。
  • 打赏
  • 举报
回复
laopokanhai 2006-04-25
to T_98Dsky(朝辉)

写的很明确了
  • 打赏
  • 举报
回复
RUN_ 2006-04-25
up
  • 打赏
  • 举报
回复
zhf777 2006-04-24
好像在查询分析器里执行的时候只要换行就行了吧
  • 打赏
  • 举报
回复
T_98Dsky 2006-04-24
string sSqls = "select * from abc;" +
"insert into abc values(a1,b2,c3);" +
"delete from abc where a1=1;";

string[] sql = sSqls.Split(Convert.ToChar(";"));
for (int i = 0; i < sql.Length; i++)
{
Response.Write(sql[i]);
}
  • 打赏
  • 举报
回复
Knight94 2006-04-24
to 有没人懂?

不是有没有人懂得问题,是你提的问题就不清楚;
如果像你举的例子那样,没有任何特殊字符进行分割,那么是很难分解的。
如果sql语句没有含有子查询的话,还可以按照关键字去分解,例如select, insert, update,delete去分解;但是如果含有子查询,或者更复杂的sql语句,你只有用sql规则去做parse。
  • 打赏
  • 举报
回复
JzeroBiao 2006-04-24
UP,有没人懂?
  • 打赏
  • 举报
回复
JzeroBiao 2006-04-24
to Knight94:
那查询分析器如何做呢?有特殊符号我问来干什么?
  • 打赏
  • 举报
回复
Knight94 2006-04-23
如果不是有特殊字符做分割,只有自己去按照sql规则去parse了。
  • 打赏
  • 举报
回复
luoboqingcai 2006-04-22
对阿,多条语句执行时候要加;的。
  • 打赏
  • 举报
回复
Lcindep110 2006-04-22
应该可以在语句的结尾都加上';'
然后使用String.Spilt方法得到。
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2006-04-22 04:22
社区公告

让您成为最强悍的C#开发者