c#读取txt文件并导入到数据库

这是一个ado.net和文件操作相结合的一个例子,比较经典哦。做的过程中出现了好多问题最终还是做出来了,学习的确需要别人的帮助,如果别人有问题了不管多忙都先学着去帮助别人,因为你要相信你并不是什么都会。学习相互提高才是最好的状态。做这个小例子我问了一个网上的“高手”他却骗我说在加班,不帮我解决问题。强烈鄙视这类人,不是熟人就不能问问题了吗?让这些人见鬼去吧。

我先贴代码啊,后面再给大家说我遇到的问题


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;

namespace 文件的导入
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void nybutton_Click(object sender, EventArgs e)
        {
            if(myimport.ShowDialog()!=DialogResult.OK){
                return;
            }
            //使用FileStream读取文件
           FileStream fileStream = File.OpenRead(myimport.FileName);



           SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=g:\vsworkspace\文件的导入\文件的导入\hnspi.mdf;Integrated Security=True;User Instance=True");




               StreamReader reader = new StreamReader(fileStream);
                 

                        conn.Open();
                        //向数据库插入数据  
                       SqlCommand command = conn.CreateCommand();
                      
                            command.CommandText = "insert into student (sno,sname) values (@Sno,@Sname)";
                            string line = null;
                            while ((line = reader.ReadLine())!= null)
                            {
                                string[] str = line.Split(',');

                                string num = str[0];
                                string name= str[1];
                                command.Parameters.Clear(); //每次插入都要清除参数
                                command.Parameters.Add(new SqlParameter("Sno", num));
                                command.Parameters.Add(new SqlParameter("Sname", name));
                                //int tem=command.ExecuteNonQuery();
                             
                                if (command.ExecuteNonQuery() > 0)

                                {
                                    MessageBox.Show("1条数据保存成功");
                                }
                                //MessageBox.Show(command.ExecuteNonQuery().ToString());
                            }
                         
                          fileStream.Close();
                          reader.Close();
                          conn.Dispose();
                          
                        }

                      
                   
                  }
            }
            
           // MessageBox.Show("数据保存成功");
           
   

我做的时候遇到了这2个问题

1.连接字符串不对,在这里可以把它复制过来,就是右击数据连接下面的mdf文件,找到属性

2.插入的时候没有clear参数,这个问题是最容易出现的


程序中的东西的确需要仔细琢磨,遇到问题了不要轻易放弃。因为我也是在百度里找了好几十页的连接才找到解决方法的。希望能够和大家分享我的代码和开发经验。


  • 14
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
将Excel文件中的数据导入到Oracle数据库可以使用以下步骤: 1. 首先,需要将Excel文件读取C#中,可以使用NPOI库来读取Excel文件中的数据。 2. 连接Oracle数据库,并打开连接。 3. 创建一个OracleCommand对象,该对象用于执行SQL命令。 4. 遍历Excel文件中的每一行数据,并将数据插入到Oracle数据库中,可以使用OracleCommand对象的ExecuteNonQuery方法来执行SQL语句。 以下是一个示例代码: ```csharp using System; using System.Data; using System.Data.OracleClient; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.SS.Util; // 读取Excel文件 HSSFWorkbook workbook = new HSSFWorkbook(new FileStream("Excel文件路径", FileMode.Open)); ISheet sheet = workbook.GetSheetAt(0); // 连接Oracle数据库 string connectionString = "Data Source=数据库地址;User ID=用户名;Password=密码;"; OracleConnection connection = new OracleConnection(connectionString); connection.Open(); // 创建OracleCommand对象 OracleCommand command = new OracleCommand(); command.Connection = connection; // 遍历Excel文件中的每一行数据,将数据插入到Oracle数据库中 for (int i = sheet.FirstRowNum + 1; i <= sheet.LastRowNum; i++) { IRow row = sheet.GetRow(i); if (row == null) continue; string col1 = row.GetCell(0).ToString().Trim(); string col2 = row.GetCell(1).ToString().Trim(); string col3 = row.GetCell(2).ToString().Trim(); string sql = "insert into table_name(col1, col2, col3) values(:col1, :col2, :col3)"; command.CommandText = sql; command.Parameters.Clear(); command.Parameters.Add(new OracleParameter(":col1", col1)); command.Parameters.Add(new OracleParameter(":col2", col2)); command.Parameters.Add(new OracleParameter(":col3", col3)); command.ExecuteNonQuery(); } // 关闭连接 connection.Close(); ``` 需要注意的是,在执行SQL语句时,使用了参数化查询,可以防止SQL注入攻击。另外,需要根据Excel文件和Oracle数据库的实际情况,修改代码中的表名、列名和连接字符串等信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值