用C语言编译完成这个程序,但我现在在学Java,对C的了解不多,希望大触们能帮帮我

图片说明图片说明

批量数据插入CODE表
解析code.csv文件批量插入CODE[PFPN])
插入DB时,做简单检查:主键(前三个栏位)中任何栏位不允许为空,不符合条件的节点不处理,但需要记录不符合条件的记录的总数,在返回结果中体现。
出现重复记录时不要报错而是更新,最终返回结果需要返回更新和插入的记录条数。

这是数据库表的基本结构,前三个栏位是主键
INSERT INTO cms.ccode
(CODE_CATE, CODE, CODE_EXT, SUBITEM, CODE_DSC, EXT_1, EXT_2, EXT_3, EXT_4, EXT_5)
VALUES('PFPN', '0002', 'P101TCAWA0Z', 'P101CCAW70Z', '10.1', '1410901-A1', 'N1011', 'C101NWT3', 'P101TCAWA1', 'M01');

你得上传code.csv文件(到百度盘,给出地址),并且给出你的数据库用什么类型,才好具体帮到你。

主键(前三个栏位)中任何栏位不允许为空,不知道你的数据文件怎么体现为空的,是直接前面三个逗号,还是根本缺少3列。还是要看了你的文件才知道。

作为一般的方法,这里有一个现成的读取csv文件的代码:
https://blog.csdn.net/pulci/article/details/51099251

int GetTotalLineCount(FILE* fp); //计算csv文件中的总行数
int GetTotalColCount(FILE * fp); //计算csv文件中的总列数(以第一行的列数为基准)
int AssignSpaceForData(int inumdata); //通过指针*giCsvData给数据动态分配内存空间
void FreeCsvData(); //释放动态数据内存
int ReadCsvData(char* csvFilePath); //读取Csv中数据(本例默认数据类型为int)
void ShowCsvData(); //通过控制台显示读取的csv数据

直接读取到二维字符串数组

之后就可以拼接sql插入数据库(用sprintf)

/*mysql数据库的查询*/
#include <stdio.h>
#include <string.h>
#include "/usr/local/mysql/include/mysql.h"


int main()
{
    MYSQL mysql;
    MYSQL_RES *res;
    MYSQL_ROW row;
    char *query;
    int flag, t;
    mysql_init(&mysql);
    if(!mysql_real_connect(&mysql, "localhost", "root", "123456", "test", 0, NULL, 0)) {
        printf("Failed to connect to Mysql!\n");
        return 0;
    }else {
        printf("Connected to Mysql successfully!\n");
    }
    query = "select * from student";
    /*查询,成功则返回0*/
    flag = mysql_real_query(&mysql, query, (unsigned int)strlen(query));
    if(flag) {
        printf("Query failed!\n");
        return 0;
    }else {
        printf("[%s] made...\n", query);
    }


    /*mysql_store_result讲全部的查询结果读取到客户端*/
    res = mysql_store_result(&mysql);
    /*mysql_fetch_row检索结果集的下一行*/
    while(row = mysql_fetch_row(res)) {
        /*mysql_num_fields返回结果集中的字段数目*/
        for(t=0; t<mysql_num_fields(res); t++)
        {
            printf("%s\t", row[t]);
        }
        printf("\n");
    }
    mysql_close(&mysql);
    return 0;
}

sql换成insert into就是插入