当前位置:  开发笔记 > 编程语言 > 正文

C#sqlite查询结果列出<string>

如何解决《C#sqlite查询结果列出<string>》经验,为你挑选了1个好方法。

我正在挣扎.我查询了我的db,它返回一列数据,我需要将其设置为List.这是我正在使用的,我收到一个关于将void转换为字符串的错误.

public static void GetImportedFileList()
    {
        using (SQLiteConnection connect = new SQLiteConnection(@"Data Source=C:\Documents and Settings\js91162\Desktop\CMMData.db3"))
        {
            connect.Open();
            using (SQLiteCommand fmd = connect.CreateCommand())
            {
                SQLiteCommand sqlComm = new SQLiteCommand(@"SELECT DISTINCT FileName FROM Import");
                SQLiteDataReader r = sqlComm.ExecuteReader();
                while (r.Read()) 
                {
                    string FileNames = (string)r["FileName"];

                    List ImportedFiles = new List();                        
                }                    

                connect.Close();
        }
    }
}

然后在申请中

List ImportedFiles = GetImportedFileList() // Method that gets the list of files from the db 
foreach (string file in files.Where(fl => !ImportedFiles.Contains(fl))) 

小智.. 29

public static List GetImportedFileList(){
    List ImportedFiles = new List();
    using (SQLiteConnection connect = new SQLiteConnection(@"Data Source=C:\Documents and Settings\js91162\Desktop\CMMData.db3")){
        connect.Open();
        using (SQLiteCommand fmd = connect.CreateCommand()){
            fmd.CommandText = @"SELECT DISTINCT FileName FROM Import";
            fmd.CommandType = CommandType.Text;
            SQLiteDataReader r = fmd.ExecuteReader();
            while (r.Read()){
                ImportedFiles.Add(Convert.ToString(r["FileName"]));
            }
        }
    }
    return ImportedFiles;
}

我在你的代码中修改过的东西:

放在ImportedFiles整个方法的范围内.

无需调用,connect.Close();因为连接对象包含在using块中.

请使用Convert.ToString而不是(String)前者将处理所有数据类型转换为字符串.我在这里遇到过这个

编辑:

您正在创建一个新的命令对象,sqlComm而不是使用fmd由连接对象创建的命令对象.



1> 小智..:
public static List GetImportedFileList(){
    List ImportedFiles = new List();
    using (SQLiteConnection connect = new SQLiteConnection(@"Data Source=C:\Documents and Settings\js91162\Desktop\CMMData.db3")){
        connect.Open();
        using (SQLiteCommand fmd = connect.CreateCommand()){
            fmd.CommandText = @"SELECT DISTINCT FileName FROM Import";
            fmd.CommandType = CommandType.Text;
            SQLiteDataReader r = fmd.ExecuteReader();
            while (r.Read()){
                ImportedFiles.Add(Convert.ToString(r["FileName"]));
            }
        }
    }
    return ImportedFiles;
}

我在你的代码中修改过的东西:

放在ImportedFiles整个方法的范围内.

无需调用,connect.Close();因为连接对象包含在using块中.

请使用Convert.ToString而不是(String)前者将处理所有数据类型转换为字符串.我在这里遇到过这个

编辑:

您正在创建一个新的命令对象,sqlComm而不是使用fmd由连接对象创建的命令对象.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有