资源seo网站优化排名注册公司代理记账报税
web/
2025/9/26 12:59:59/
文章来源:
资源seo网站优化排名,注册公司代理记账报税,口碑好网站建设费用,网页设计作业成品框架集C#.net使用npgsql批量写入数据入库到postgresql数据库 npgsql批量存储数据1. 单条存储2. 批量存储 npgsql批量存储数据
转载自#xff1a;https://blog.csdn.net/liuwanying0226/article/details/130825503
1. 单条存储
当有类型限定时#xff0c;例如jsonb#xff0c;在… C#.net使用npgsql批量写入数据入库到postgresql数据库 npgsql批量存储数据1. 单条存储2. 批量存储 npgsql批量存储数据
转载自https://blog.csdn.net/liuwanying0226/article/details/130825503
1. 单条存储
当有类型限定时例如jsonb在单条存储时 在sql语句中使用‘event_data::jsonb’此形式 public async Task SaveDbAsync(PageViewTrackEventDto trackEventDto){try{string connecstr GetConnectionString();NpgsqlConnection con new NpgsqlConnection(connecstr);con.Open();string strsql INSERT INTO drp_app_track_event (start_time, duration, session_id, trace_id, parent_trace_id, event_type, event_code, action_code, user_id, user_info, event_data) VALUES (start_time, duration, session_id, trace_id, parent_trace_id, event_type, event_code, action_code, user_id, user_info::jsonb, event_data::jsonb) ;using (NpgsqlCommand SqlCommand new NpgsqlCommand(strsql, con)){SqlCommand.Parameters.AddWithValue(start_time, trackEventDto.start_time);SqlCommand.Parameters.AddWithValue(duration, trackEventDto.duration);SqlCommand.Parameters.AddWithValue(session_id, trackEventDto.session_id);SqlCommand.Parameters.AddWithValue(trace_id, trackEventDto.trace_id);SqlCommand.Parameters.AddWithValue(parent_trace_id, trackEventDto.parent_trace_id);SqlCommand.Parameters.AddWithValue(event_type, trackEventDto.event_type);SqlCommand.Parameters.AddWithValue(event_code, trackEventDto.event_code);SqlCommand.Parameters.AddWithValue(action_code, trackEventDto.action_code);SqlCommand.Parameters.AddWithValue(user_id, trackEventDto.user_id);SqlCommand.Parameters.AddWithValue(user_info, JsonConvert.SerializeObject(trackEventDto.user_info));SqlCommand.Parameters.AddWithValue(event_data, JsonConvert.SerializeObject(trackEventDto.event_data));SqlCommand.ExecuteNonQuery(); con.Close();}}catch (Exception ex){throw;}}
2. 批量存储
多条存储遇到类型限定在write写入时加入‘NpgsqlDbType.Jsonb’限定。 注BeginBinaryImport(“copy drp_app_track_event(session_id,duration,start_time,trace_id,parent_trace_id,event_type,event_code,action_code,user_id,user_info,event_data) FROM STDIN BINARY”)) 使用以上方法可以指定哪些列是需要进行数据入库的这样可以屏蔽掉一些自增的列。 BeginBinaryImport(“copy 表名(字段名使用逗号分隔) FROM STDIN BINARY”)) public Task SaveDbAsync(ListPageViewTrackEventDto trackEventDto){try{string connecstr GetConnectionString();NpgsqlConnection con new NpgsqlConnection(connecstr);con.Open();using (var writer con.BeginBinaryImport(copy drp_app_track_event(session_id,duration,start_time,trace_id,parent_trace_id,event_type,event_code,action_code,user_id,user_info,event_data) FROM STDIN BINARY)){foreach (var record in trackEventDto) {writer.StartRow();writer.Write(record.session_id);writer.Write(record.duration);writer.Write(record.start_time);writer.Write(record.trace_id);writer.Write(record.parent_trace_id);writer.Write(record.event_type);writer.Write(record.event_code);writer.Write(record.action_code);writer.Write(record.user_id);writer.Write(JsonConvert.SerializeObject(record.user_info), NpgsqlDbType.Jsonb);writer.Write(JsonConvert.SerializeObject(record.event_data), NpgsqlDbType.Jsonb);}writer.Complete();}}catch (Exception ex){throw;}return Task.CompletedTask;}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82204.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!