SQLite RAM使用情况

时间:2015-02-25 08:06:36

标签: c# sqlite server

大家 我写了简单的Client - Server项目。客户端将DataSet发送到Server和Server将数据保存到SQLite DB。使用过的https://msdn.microsoft.com/en-us/library/fx6588te(v=vs.110).aspx示例。但是RAM的服务器使用量会随着时间的推移而增加,这会导致内存执行,尽管我从固定数量的客户端发送固定大小的数据。这是代码示例。

public static void fillTable(SQLiteConnection connection, byte[] binaryData)
{
    DataTable dt = DisSer(binaryData).Tables[0];
    using (SQLiteCommand cmd = connection.CreateCommand())
    {
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "insert into 'LOG' (COMP,USER,SITE,DATE,DATA) values (@MachineName, @UserName, @LocationURL, @DateTime, @Data)";
        cmd.Parameters.Add(new SQLiteParameter("@MachineName", DbType.String));
        cmd.Parameters.Add(new SQLiteParameter("@UserName", DbType.String));
        cmd.Parameters.Add(new SQLiteParameter("@LocationURL", DbType.String));
        cmd.Parameters.Add(new SQLiteParameter("@DateTime", DbType.String));
        cmd.Parameters.Add(new SQLiteParameter("@Data", DbType.String));
        foreach (DataRow dr in dt.Rows)
        {
            cmd.Parameters["@MachineName"].Value = dr["COMP"].ToString();
            cmd.Parameters["@UserName"].Value = dr["USER"].ToString();
            cmd.Parameters["@LocationURL"].Value = dr["SITE"].ToString();
            cmd.Parameters["@DateTime"].Value = dr["DATE"].ToString() + DateTime.Now.Millisecond.ToString();
            cmd.Parameters["@Data"].Value = dr["DATA"].ToString();
            cmd.ExecuteNonQuery();
        }
    }


}
    static public void connectToDataBase(string dataSourse)
{
    connectionString = "Data Source=" + dataSourse + ";Version=3;";
    if (!File.Exists(dataSourse))
    {
        SQLiteConnection.CreateFile(dataSourse);

        using (connection = new SQLiteConnection(connectionString))
        {

            connection.Open();
            using (var cmd = connection.CreateCommand())
            {
                cmd.CommandText = "CREATE TABLE LOG (ID INTEGER PRIMARY KEY   AUTOINCREMENT,COMP TEXT , USER TEXT, SITE TEXT, DATE TEXT, DATA TEXT)";
                cmd.ExecuteNonQuery();
            }
            connection.Close();

        }

    }
    connection = new SQLiteConnection("Data Source=" + dataSourse + ";Version=3;");
    connection.Open();
}
public static int Main(String[] args)
{


    connectToDataBase("C:\\log2\\db.sqlite");

    StartListening();

    return 0;
}

0 个答案:

没有答案