如何设置System.Data.SQLite以显示标题?

时间:2014-02-15 12:33:40

标签: c# sqlite

我可以用sqlite3命令编写和执行这样的命令(在命令提示符下):

sqlite3 -header sms.db "select * from message"

或我发现在Change SQLite default settings中更改了sqlite的默认设置。

但我正在使用c#和System.Data.SQLite.dll,然后我没有任何这些解决方案......我如何设置headers on

我的c#代码是这样的:

SQLiteConnection connection = new SQLiteConnection("Data Source=" + path);

connection.Open();

SQLiteDataReader reader = new SQLiteCommand(connection) { CommandText = "select * from message" }.ExecuteReader();

while (reader.Read())
{
    //...
}

reader.Close();
connection.Close();

1 个答案:

答案 0 :(得分:1)

你“不能”。无法通过SQLite中的任何选项打开标头。

然而,您可以从阅读器中检索列名并自行显示。

SQLiteConnection connection = new SQLiteConnection("Data Source=" + path);

connection.Open();

SQLiteDataReader reader = new SQLiteCommand(connection) { CommandText = "select * from message" }.ExecuteReader();

bool needHeader = true;
while (reader.Read())
{
    // show header if this is the first row
    if(needHeader){
        ShowHeader(reader);
        needHeader = false;
    }
    //...
}

reader.Close();
connection.Close();

void ShowHeader(SQLiteDataReader reader){
    for (int i=0;i < reader.FieldCount;i++) 
    { 
      string fieldName = reader.GetName(i); 
      // use your display method here
      Console.Write(fieldName+"\t"); 
    }         
}