Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQLite C简单数据库查找_C#_Database_Sqlite - Fatal编程技术网

C# SQLite C简单数据库查找

C# SQLite C简单数据库查找,c#,database,sqlite,C#,Database,Sqlite,我已经从我的程序中向SQlite数据库插入了很多信息。现在,我的小任务是查找数据库并从中找到一些统计数据 我有一个包含三个字段的数据库——时间戳、消息和键 现在,我想检查Message列中的数据库,并计算某个关键字say错误在数据库中发生的次数 最简单的方法是什么? 选择来自数据库的消息以及如何添加筛选器 我使用正则表达式在插入之前过滤掉一些东西。我应该在这里做类似的事情吗 谢谢 编辑: 我使用了下面提到的解决方案SELECT count*,但我仍然不知道如何获取值以在另一个函数中使用它。我已经

我已经从我的程序中向SQlite数据库插入了很多信息。现在,我的小任务是查找数据库并从中找到一些统计数据

我有一个包含三个字段的数据库——时间戳、消息和键 现在,我想检查Message列中的数据库,并计算某个关键字say错误在数据库中发生的次数

最简单的方法是什么? 选择来自数据库的消息以及如何添加筛选器

我使用正则表达式在插入之前过滤掉一些东西。我应该在这里做类似的事情吗

谢谢

编辑:

我使用了下面提到的解决方案SELECT count*,但我仍然不知道如何获取值以在另一个函数中使用它。我已经在下面展示了我使用的代码。我是SQL新手,它可能是错的。请帮忙

public void selectFromDatabase()
    {
        String cntnStr_query = "data source=C:\\TMU_Files\\test31.s3db";
        SQLiteConnection connection_query = new SQLiteConnection(cntnStr_query);
        connection_query.Open();
        SQLiteCommand cmd_query = connection_query.CreateCommand();
        cmd_query.CommandText = "SELECT count(*) from LogDatabase where LogMessage like '%ERR%'";
        SQLiteDataAdapter da_query = new SQLiteDataAdapter(cmd_query);
        DataSet ds_query = new DataSet();
        //MessageBox.Show(cmd_query.ExecuteNonQuery().ToString());
        //MessageBox.Show(count.ToString());
        try
        {
            da_query.Fill(ds_query);
            DataTable dt_query = ds_query.Tables[0];
        }
        catch (Exception e)
        {
            MessageBox.Show(e.ToString());
        }
        finally
        {
            cmd_query.Dispose();
            connection_query.Close();
        }
        //cmd_query.Dispose();
        //connection_query.Close();

    }
}
}

至于它在代码中应该是什么样子,请尝试以下方法:

using(var sda=new SQLiteDataAdapter(
  "SELECT count(*) from LogDatabase where LogMessage like '%ERR%'",
  "data source=C:\\TMU_Files\\test31.s3db")
{
  var dt=new DataTable();
  sda.Fill(dt);
  return dt;
}
至于它在代码中应该是什么样子,请尝试以下方法:

using(var sda=new SQLiteDataAdapter(
  "SELECT count(*) from LogDatabase where LogMessage like '%ERR%'",
  "data source=C:\\TMU_Files\\test31.s3db")
{
  var dt=new DataTable();
  sda.Fill(dt);
  return dt;
}

SQLite使用SQL-92语言的一个子集,因此大多数基础知识与其他SQL环境中的相同。SELECT、FROM、WHERE、ORDER BY子句的工作方式与您预期的基本相同


有关支持的语法的文档可以在这里找到:

SQLite使用SQL-92语言的一个子集,因此大多数基础知识与其他SQL环境中的相同。SELECT、FROM、WHERE、ORDER BY子句的工作方式与您预期的基本相同


有关支持的语法的文档可在此处找到:

出现错误的时间数由以下内容给出

select sum((Length(message) - length(replace(message,'error',''))) / length('error')) from 
from database where
message like '%error%'

出现错误的时间数由以下内容给出

select sum((Length(message) - length(replace(message,'error',''))) / length('error')) from 
from database where
message like '%error%'

这里的伯爵是什么?列?count返回查询中的行数。是否有方法将count的值返回到C中的某个变量中,以便我将其用于其他内容?例如,计算后存储在哪里?如果调用SqlDataAdapter.Fill,则存储在结果数据表中;如果使用ExecuteReader,则存储在读取器中。请检查我编辑的代码,并告诉我需要更改什么?!我无法调用SqlDataAdapter.Fill这里的计数是多少?列?count返回查询中的行数。是否有方法将count的值返回到C中的某个变量中,以便我将其用于其他内容?例如,计算后存储在哪里?如果调用SqlDataAdapter.Fill,则存储在结果数据表中;如果使用ExecuteReader,则存储在读取器中。请检查我编辑的代码,并告诉我需要更改什么?!我无法调用SqlDataAdapter.Filljust for clarity-出现错误的次数或出现错误的行数?出现错误的行数..just for clarity-出现错误的次数或出现错误的行数?出现错误的行数。。