最近公司項目中有需要,所以就寫了,不多說了,先上代碼
程序代碼中引用的有其他人寫的數據庫執行和表創建函數,這裏事先說明下(其實我就是整理了一下)
using System;
using System.Data.SQLite;
using MongoDB.Driver;
using MongoDB.Bson;
namespace Test
{
class MongoMethod
{
MongoClient mongoClient;
MongoServer mongoServer;
MongoDatabase mongoDatabase;
/// <summary>
/// 取出的數據緩存
/// </summary>
BsonDocument[] dataStrBuffers = new BsonDocument[3];
//存儲發送數據的字符串
string sendData;
private SQLiteConnection connection;
SQLiteCommand m_DbCommand;
SQLiteDataReader m_Reader;
private string fileName = "(path,sqlite數據庫文件所在路徑)";
static void Main(string[] args)
{
MongoMethod mongo = new MongoMethod();
mongo.ConnectSqlite();
mongo.GetData();
Console.ReadKey();
}
private void ConnectSqlite()
{
connection = new SQLiteConnection(@"Data Source=" + fileName);
connection.Open();
}
/// <summary>
/// 執行數據庫語句(返回數據集)
/// </summary>
/// <param name="sqlQuery">數據庫語句</param>
/// <returns>執行結果返回的數據集</returns>
public SQLiteDataReader ExecuteQuery(string sqlQuery)
{
if (connection == null)
{
Console.WriteLine("SQLite connection is null, Please OpenDB first");
return null;
}
m_DbCommand = connection.CreateCommand();
m_DbCommand.CommandText = sqlQuery;
m_Reader = m_DbCommand.ExecuteReader();
return m_Reader;
}
/// <summary>
/// 執行數據庫語句(不返回結果集)
/// </summary>
/// <param name="sqlQuery">數據庫語句</param>
public void ExecuteNonQuery(string sqlQuery)
{
if (connection == null)
{
Console.WriteLine("SQLite connection is null, Please OpenDB first");
return;
}
m_DbCommand = connection.CreateCommand();
m_DbCommand.CommandText = sqlQuery;
m_DbCommand.ExecuteNonQuery();
}
/// <summary>
/// 創建數據庫新表
/// </summary>
/// <param name="tableName">數據庫表名</param>
/// <param name="cols">目標列名集合</param>
/// <param name="colTypes">目標類型名集合</param>
/// <returns>執行結果數據集讀取器</returns>
public SQLiteDataReader CreateTable(string tableName, string[] cols, string[] colTypes)
{
if (cols.Length != colTypes.Length)
{
Console.WriteLine("columns.Length != colType.Length");
}
string query = "CREATE TABLE " + tableName + " (" + cols[0] + " " + colTypes[0];
for (int i = 1; i < cols.Length; ++i)
{
query += ", " + cols[i] + " " + colTypes[i];
}
query += ")";
return ExecuteQuery(query);
}
/// <summary>
/// 插入數據
/// </summary>
/// <param name="tableName">數據庫表名</param>
/// <param name="colName">目標列名集合</param>
/// <param name="value">數據</param>
public void InsertIntoSpecific(string tableName, string colName, string value)
{
try
{
string query = string.Format("INSERT INTO {0}({1}) VALUES ('{2}')", tableName, colName, value);
ExecuteNonQuery(query);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private void GetData()
{
//連接mongodb數據庫
mongoClient = new MongoClient("mongodb://localhost:27017");
mongoServer = mongoClient.GetServer();
mongoDatabase = mongoServer.GetDatabase("ZWAR");//根據mongo數據庫名獲取數據庫
//獲取表單
var collection = mongoDatabase.GetCollection<BsonDocument>("ZR2");
//查找表中所有數據
MongoCursor mongoCursor = collection.FindAll();
mongoCursor.SetFlags(QueryFlags.NoCursorTimeout);
foreach (BsonDocument book in mongoCursor)
{
#region 數據格式整理
................
#endregion
//更新要發送的數據
sendData = ;
//打印數據到控制檯上
Console.WriteLine(sendData);
//插入數據
InsertIntoSpecific("allSignalData10", "content",sendData);
}
}
}
}
}