C语言使用ON传输大量数据库信息 (c json传大批量数据库)

随着互联网的高速发展,数据的处理和传输已经成为了一项重要的工作。而在大量数据的处理和传输时,为了保证数据的安全和准确性,使用C语言结合ON格式的数据传输便成为了很多厂商和开发者的选择。

1. ON格式简介

ON(JavaScript Object Notation)是一种轻量级的数据交换格式,可以方便的在不同的语言之间传输数据。ON既可以用于服务器和客户端之间的数据交互,也可以用于不同系统之间的通讯。ON格式具有通用性、易读性、易用性、广泛的支持和易于解析等优点,在数据传输和处理中使用ON格式是十分常见的。

ON格式的数据由键值对组成,键值对之间使用逗号分隔,整个数据由花括号{}包围。键值对由键和值组成,键和值之间使用冒号:分隔。键和值都可以是字符串、数字、数组和对象等类型。

下面是一段ON数据的示例:

“`json

{

“name”: “Tom”,

“age”: 18,

“friends”: [“Jerry”, “Bob”, “Lucy”],

“address”: {

“province”: “Guangdong”,

“city”: “Shenzhen”

}

}

“`

在ON格式中,上述数据表示了一个人的名字、年龄、朋友以及地址信息。可以看到,这个ON数据使用花括号包围,键之间使用逗号分隔,每个键都有对应的值。其中朋友是一个数组,地址是一个对象。

2. C语言中的ON库

C语言本身并不支持ON格式的数据交互和处理,但我们可以使用一些第三方的ON库来实现这个功能。常见的C语言ON库有cON、Jansson、ON-C等,这些库都是开源的,并且应用广泛。

例如,我们可以使用cON库来解析和生成ON数据。cON是一个轻量级的C语言ON库,使用方便,功能完备,支持数组和嵌套对象,能够快速的解析、生成以及操作ON数据。

下面是cON库的使用示例:

“`c

#include

#include

#include “cON.h”

int mn() {

// 创建ON对象

cON *root = cON_CreateObject();

// 添加键值对

cON_AddStringToObject(root, “name”, “Tom”);

cON_AddNumberToObject(root, “age”, 18);

// 添加数组

cON_AddItemToObject(root, “friends”, cON_CreateString(“Jerry”));

cON_AddItemToArray(cON_GetObjectItem(root, “friends”), cON_CreateString(“Bob”));

cON_AddItemToArray(cON_GetObjectItem(root, “friends”), cON_CreateString(“Lucy”));

// 添加对象

cON_AddItemToObject(root, “address”, cON_CreateObject());

cON_AddStringToObject(cON_GetObjectItem(root, “address”), “province”, “Guangdong”);

cON_AddStringToObject(cON_GetObjectItem(root, “address”), “city”, “Shenzhen”);

// 生成ON字符串

char *json_str = cON_Print(root);

printf(“%s\n”, json_str);

// 解析ON字符串

cON *root2 = cON_Parse(json_str);

const char *name = cON_GetObjectItem(root2, “name”)->valuestring;

int age = cON_GetObjectItem(root2, “age”)->valueint;

cON *friends = cON_GetObjectItem(root2, “friends”);

int size = cON_GetArraySize(friends);

const char *province = cON_GetObjectItem(cON_GetObjectItem(root2, “address”), “province”)->valuestring;

const char *city = cON_GetObjectItem(cON_GetObjectItem(root2, “address”), “city”)->valuestring;

printf(“name = %s\n”, name);

printf(“age = %d\n”, age);

printf(“province = %s\n”, province);

printf(“city = %s\n”, city);

for (int i = 0; i

const char *friend = cON_GetArrayItem(friends, i)->valuestring;

printf(“friend[%d] = %s\n”, i, friend);

}

// 释放内存

free(json_str);

cON_Delete(root);

cON_Delete(root2);

return 0;

}

“`

运行上述程序,可以得到下面的输出结果:

“`json

{

“name”:”Tom”,

“age”:18,

“friends”:[“Jerry”,”Bob”,”Lucy”],

“address”:{

“province”:”Guangdong”,

“city”:”Shenzhen”

}

}

name = Tom

age = 18

province = Guangdong

city = Shenzhen

friend[0] = Jerry

friend[1] = Bob

friend[2] = Lucy

“`

可以看到,上述程序使用cON库创建了一个ON对象,并添加了键值对、数组和对象。然后,将ON对象转换成ON字符串输出,再通过cON_Parse函数将ON字符串解析成ON对象,然后取出对应的值进行使用。释放内存,结束程序。

3. C语言使用ON传输数据库信息

在实际应用中,我们可以使用C语言和ON格式来传输和处理大量的数据库信息。在数据处理和传输时,我们先将数据库中的数据读取到内存中,然后使用cON库将数据转换成ON格式的字符串,再发送给客户端。客户端接收到ON字符串后,可以通过解析ON字符串,将ON数据转换成对应的结构体或数组,然后进行数据处理。

例如,下面是一个简单的使用C语言和ON传输数据库信息的示例:

“`c

#include

#include

#include

#include “cON.h”

#define DB_HOST “localhost”

#define DB_USER “root”

#define DB_PASS “”

#define DB_NAME “test”

#define DB_PORT 3306

int query_database(MYSQL *con, const char *sql, cON **result) {

if (mysql_query(con, sql)) {

printf(“Error %u: %s\n”, mysql_errno(con), mysql_error(con));

return 1;

}

MYSQL_RES *res = mysql_store_result(con);

if (!res) {

printf(“Error %u: %s\n”, mysql_errno(con), mysql_error(con));

return 1;

}

int num_fields = mysql_num_fields(res);

MYSQL_FIELD *fields = mysql_fetch_fields(res);

int num_rows = mysql_num_rows(res);

cON *root = cON_CreateArray();

*result = root;

for (int i = 0; i

MYSQL_ROW row = mysql_fetch_row(res);

if (!row)

break;

cON *item = cON_CreateObject();

cON_AddItemToArray(root, item);

for (int j = 0; j

cON_AddStringToObject(item, fields[j].name, row[j] ? row[j] : “”);

}

}

mysql_free_result(res);

return 0;

}

int mn() {

MYSQL *con = mysql_init(NULL);

if (!con) {

printf(“Error %u: %s\n”, mysql_errno(con), mysql_error(con));

return 1;

}

if (!mysql_real_connect(con, DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT, NULL, 0)) {

printf(“Error %u: %s\n”, mysql_errno(con), mysql_error(con));

return 1;

}

const char *sql = “SELECT * FROM users”;

cON *result = NULL;

query_database(con, sql, &result);

char *json_str = cON_Print(result);

printf(“%s\n”, json_str);

free(json_str);

cON_Delete(result);

mysql_close(con);

return 0;

}

“`

上述程序使用了MySQL数据库和cON库来传输数据库信息。程序连接到MySQL数据库,并执行一条查询语句获取用户信息。查询结果使用cON库生成ON格式的字符串,并输出到屏幕上。释放内存,关闭数据库连接,结束程序。

4.

相关问题拓展阅读:

C#怎样实现从数据库中把数据传到另一个数据库中

1.假设两个数据库结构完全一致,包括所有的表结构定义,键约束关系,等等,那么,你可以按下面的思路来进行导库:

首先,用ADO或RDO连接指定的源数据库A和目标数据库B;

其次,用查询语句查询库A系统表,如果你没用过ACCESS的系统表,你可以打开ACCESS后,点“工具”–“选项”,念亩在“视图”页里有一个“系统对象”,勾选后确定,你就会看到在“表”对象窗口又多出了几个表,打开看看,就会明白,有些保存了表的名称信息,有些保存了每个表的各列列名等等,而且一般是通过ID能够进行关联查询的。有了这些信息,我相信你生成个T-sql语句把每个表名称都查出来不成问题吧。

第三,用编程语言(VB、C#等)便历每个表,用链接数迹高烂据库姿漏的形式把链接表内容入目的表(快办法);或便历每个源表后,用程序实现遍历每条记录,逐行插入目的表(笨办法)。

2.如果存在表间的外键约束,那么我建议你还是手工来进行资料的导库。另外,如果不是存在大批量导库的问题的话,我也建议你还是手工进行导库,有写程序的功夫,最少都应该能导个三五遍了。

你的库一样不一样啊

如果是同一个数据库服务器,把数据的转移工作业务逻辑写在存储过程中,然后C#写段程序调用存储过程。

在你的数据库上右键,任务,导出数据。这个页面是你要从哪个数据库中导出数据,下一步首岩,这个启芹友页面是你要导到哪个悄槐数据库,下一步,选择之一项,下一步,这个页面是选择你要导到另一个表的表或视图。(表的主键导不过去)下一步,再下一步。完成。

利用构造方法啊,例如Form2 f2=new Form2(textbox.text)

Form2 定义的时候,在铅猜写构造函数时好激腔候带个参数

public Form2(string str)

{

InitializeComponent();

label1.Text=str;

}

另外,团IDC网上有许多产友衫品团购,便宜有口碑

我可以说下思路- -~

但缺基是估计数据大了内存伤不起T_T

为毛要在c#里做 说说伏源谨需求裂行0 0~

如何将文本文档批量数据导入到数据库中

只要文件能够用记事本打开并格式正确,就可以把他认州铅高为是文本文件进行处理.

象这种格式的数据没有什么册尺太好的办法,只有从文本文件中逐行读取解析,当读到完整的记录时执行SQL语句插入到数激备据库中.

asp.net/c#代码实现excel to mssql数据导入

2023年12月17日 星期三 13:42

做网站项目时,可能会遇到将excel文件中的数据导入至sql server数据库的需求,把excel也看作数据库,使用OleDb连接后读取数据然后写入用SqlClient连接的sql server数据库即可,技术上没有什么难度。消配乱

但是需要考虑的一个问题是,系统安装的环境一般是专卖孙用sql server服务器+web服务器+客户端,而excel文件往往在客户端导入,如果直接使用sql语句读取的话,由于sql在web服务器上运行,不能读取到客户端的excel地址,就会出错了。

既然知道了错误拿档的原因,解决方案也就有了:

1、把客户端的excel上传至web服务器上某文件夹,注意要给该文件夹设置网络用户的“写入”权限;

2、使用OleDb+sql语句读取web服务器上的excel文件

3、将读取的数据写入到sql server 数据库

4、将web服务器上的临时excel删除

部分代码如下:

string filename = FileUpload1.PostedFile.FileName.Substring(FileUpload1.PostedFile.FileName.LastIndexOf(“\\”));

FileUpload1.PostedFile.SaveAs(Server.MapPath(“fileupload\\”) + filename);//上传文件

string conn = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + Server.MapPath(“fileupload\\”) + filename + “;Extended Properties=Excel 8.0”;

string sqlin = “SELECT * FROM “;

OleDbCommand olecommand = new OleDbCommand(sqlin, new OleDbConnection(conn));

OleDbDataAdapter adapterin = new OleDbDataAdapter(olecommand);

DataSet dsin = new DataSet();

adapterin.Fill(dsin);

DataTable dtin = dsin.Tables;//连接并读取excel数据

for (i = 3; i alert(‘数据导入错误,请检查Excel文件’)”);

return;

}

}

FileInfo file = new FileInfo(Server.MapPath(“fileupload/”) + filename);

if (file.Exists)

{//删除文件

file.Delete();

}

protected void DoSql(string sql)//执行sql语句的函数

{

SqlConnection conn = new SqlConnection();//创建连接对象

conn.ConnectionString = ConfigurationManager.AppSettings.ToString();//给连接字符串赋值

conn.Open();//打开数据库

SqlCommand cmd = new SqlCommand(sql, conn);

cmd.ExecuteNonQuery();//

conn.Close();//关闭数据库

}

注:

1、本文代码均取自我最近刚做的一个小项目,部分数据有较强针对性,并不通用,只有思路通用

2、由于能力和水平问题,部分代码显得有些笨拙,若能灵活运用存储过程,应能大幅度简化代码 只要你的文件能够用记事本打开并格式正确,就可以把他认为是文本文件进行处理.

象这种格式的数据没有什么太好的办法,只有从文本文件中逐行读取解析,当读到完整的记录时执行SQL语句插入到数据库中.

参考:

asp.net/c#代码实现excel to mssql数据导入

2023年12月17日 星期三 13:42

做网站项目时,可能会遇到将excel文件中的数据导入至sql server数据库的需求,把excel也看作数据库,使用OleDb连接后读取数据然后写入用SqlClient连蠢竖前接的sql server数据库即可,技术上没有什么难度。

但是需要考虑的一个问题是,系统安装的环境一般是专用sql server服务器+web服务器+客户端,而excel文件往往带清在客户端导入,如果直接使用sql语句读取的话,由于sql在web服务器上运行,不能读取到客户端的excel地址,就会出错了。

既然知道了错误的原因,解决方案也就有了:

1、把客户端的excel上传至web服务器上某文件夹,注意要给该文件夹设置网络用户的“写入”权限;

2、使用OleDb+sql语句读取web服务器上的excel文件

3、将读取的数据写入到sql server 数据库

4、将web服务器上的临时excel删除

部分代码如下:

string filename = FileUpload1.PostedFile.FileName.Substring(FileUpload1.PostedFile.FileName.LastIndexOf(“\\”));

FileUpload1.PostedFile.SaveAs(Server.MapPath(“fileupload\\”) + filename);//上传文件

string conn = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + Server.MapPath(“fileupload\\”纤冲) + filename + “;Extended Properties=Excel 8.0”;

string sqlin = “SELECT * FROM “;

OleDbCommand olecommand = new OleDbCommand(sqlin, new OleDbConnection(conn));

OleDbDataAdapter adapterin = new OleDbDataAdapter(olecommand);

DataSet dsin = new DataSet();

adapterin.Fill(dsin);

DataTable dtin = dsin.Tables;//连接并读取excel数据

for (i = 3; i alert(‘数据导入错误,请检查Excel文件’)”);

return;

}

}

FileInfo file = new FileInfo(Server.MapPath(“fileupload/”) + filename);

if (file.Exists)

{//删除文件

file.Delete();

}

protected void DoSql(string sql)//执行sql语句的函数

{

SqlConnection conn = new SqlConnection();//创建连接对象

conn.ConnectionString = ConfigurationManager.AppSettings.ToString();//给连接字符串赋值

conn.Open();//打开数据库

SqlCommand cmd = new SqlCommand(sql, conn);

cmd.ExecuteNonQuery();//

conn.Close();//关闭数据库

}

注:

1、本文代码均取自我最近刚做的一个小项目,部分数据有较强针对性,并不通用,只有思路通用

2、由于能力和水平问题,部分代码显得有些笨拙,若能灵活运用存储过程,应能大幅度简化代码

只要你的文件岩猛能够世做用记事本打开并格式正确,就可以把他认为是文本文件进行处理.

象这种格式的数搜枣衡据没有什么太好的办法,只有从文本文件中逐行读取解析,当读到完整的记录时执行SQL语句插入到数据库中.

把文本文件转成一销清个的格锋毁式,比如用逗号分亏基前隔

111,234,fsgds,45645,ghjgh,sdf

dfg,fgh,fghf,dfgh,dfgdf,gdfg,

tryer,yery,ret,ertey,uti,yuiyu

关于c json传大批量数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » C语言使用ON传输大量数据库信息 (c json传大批量数据库)