C#使用列表和文本文件执行SQL查询然后导出

时间:2009-12-07 22:00:08

标签: c# sql-server sql-server-2005

场景:我有一个从组合框填充的列表。该列表中最多可列出50个内容(列表框中列出的是列名)。棘手的部分:我有一个文本文件,匹配sql表中的一个字段。 X1,X2,X3是列表框项目。

所以我基本上需要:

select <line in text file>, from <blah> where id = object_id('table')  
export <x2>,<x3>,<x4>,<x5>,<x6>,C:\Comma.text

我不需要帮助制作列表框或SQL连接。

基本上我如何在字符串中列出我的列表框(无论选择的顺序是表示按该顺序选择的内容,还是基于文本文件匹配的SQL命令并将其导出。)

我知道这个会很痛苦。先谢谢

1 个答案:

答案 0 :(得分:0)

你的问题不是很清楚......文本文件是否包含表格中行的主键值?

如果是这种情况,您的SQL伪代码将如下所示:

select <selectedColumn1>, <selectedColumn2>,...  
from yourTable  
where primarykeyColumn in (<yourTextFileValues>)  

至于如何将列表框中的选定项目添加到字符串,并将SQL语句格式化为仅从数据库中选择要导出的那些行,这里有一种方法:

string[] selectedColumns = new string[myListBox.SelectedItems.Count];
for(int i = 0; i < myListBox.SelectedItems.Count; i++)
{
    selectedColumns[i] = myListBox.SelectedItems[i].ToString();
}
string exportColumns = string.Join(",", selectedColumns);

//format your sql statement
string sqlStatement = string.Format("select {0} from YourTable WHERE blah=blah2", 
                                     exportColumns);

如果列表框中的所有内容都被视为“已选中”以进行导出,则只需将myListBox.SelectedItems替换为myListBox.Items