Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将新行从文本文件插入数据库_C#_Mysql - Fatal编程技术网

C# 将新行从文本文件插入数据库

C# 将新行从文本文件插入数据库,c#,mysql,C#,Mysql,让我首先说这是我第一个真正的c应用程序,所以我知道可能有更有效的方法,但这是我的第一次尝试。无论如何,应用程序的目的是从逗号分隔的文件中读取数据,分隔该逗号分隔文件的每个元素,然后将这些元素导入数据库中的行中。我现在被困在我的尝试和捕捉短语中,每次它都会被捕捉到,所以它永远不会连接到我的数据库。任何提示、提示或帮助都将不胜感激 当前错误:System.Data.dll中发生“System.InvalidOperationException”类型的未处理异常 附加信息:连接必须有效且打开 usin

让我首先说这是我第一个真正的c应用程序,所以我知道可能有更有效的方法,但这是我的第一次尝试。无论如何,应用程序的目的是从逗号分隔的文件中读取数据,分隔该逗号分隔文件的每个元素,然后将这些元素导入数据库中的行中。我现在被困在我的尝试和捕捉短语中,每次它都会被捕捉到,所以它永远不会连接到我的数据库。任何提示、提示或帮助都将不胜感激

当前错误:System.Data.dll中发生“System.InvalidOperationException”类型的未处理异常

附加信息:连接必须有效且打开

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.IO;
using System.Data.SqlClient; 
namespace Form1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (File.Exists(@"C:\Users\E15913\Downloads\testfile3.txt"))
                File.Delete(@"C:\Users\E15913\Downloads\testfile3.txt");
            var reader = new StreamReader(File.OpenRead(@"C:\Users\E15913\Downloads\ALMGrade.csv"));
            using (StreamReader readFile = new StreamReader(@"C:\Users\E15913\Downloads\ALMGrade.csv"))
            {
                string newline = "\n";
                string line;
                string[] row;
                int i = 0;

                while ((line = readFile.ReadLine()) != null)
                {

                    i++;
                    row = line.Split(',');
                    System.IO.File.AppendAllText(@"C:\Users\E15913\Downloads\testfile3.txt", row[0].ToString() + Environment.NewLine + row[1].ToString() + Environment.NewLine + row[2].ToString() + Environment.NewLine + row[3].ToString() + Environment.NewLine + row[4].ToString() + Environment.NewLine + row[5].ToString() + Environment.NewLine + row[6].ToString() + Environment.NewLine + row[7].ToString() + Environment.NewLine);
                }

                    string MyConString = "SERVER=10.100.135.220;" + "DATABASE=ak_steel;" + "UID=pickler;" + "PASSWORD=csmrecession09;";

                        string _recDateTimeMySql = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                        using (MySqlConnection connection = new MySqlConnection(MyConString))
                        {
                            MySqlCommand cmd = new MySqlCommand("insert into p4gradetable_copy (Grade, CoilingTemp, GaugeRange, WidthRange, MeshCassette1, MeshCassette2, XBow, Elongation ) VALUES(" + '"' + line + '"' + "," + '"' + line + '"' + "," + '"' + line + '"' + "," + '"' + line + '"' + "," + '"' + line + '"' + "," + '"' + line + '"' + "," + '"' + line + '"');
                            cmd.CommandType = CommandType.Text;

                            cmd.Parameters.AddWithValue("@Grade", line);
                            cmd.Parameters.AddWithValue("@CoilingTemp", line);
                            cmd.Parameters.AddWithValue("@GaugeRange", line);
                            cmd.Parameters.AddWithValue("@WidthRange", line);
                            cmd.Parameters.AddWithValue("@MeshCassette1", line);
                            cmd.Parameters.AddWithValue("@MeshCassette2", line);
                            cmd.Parameters.AddWithValue("@XBow", line);
                            cmd.Parameters.AddWithValue("@Elongation", line);

                            connection.Open();
                            cmd.ExecuteNonQuery();
                            label1.Text = "It Works";
                        }




            }
        }
}
}

您的问题是您正在创建用于Sql Server的SqlConnection。您必须创建MySql连接,并确保将MySql客户端dll链接到您的项目

还要确保创建MySqlCommand而不是SqlCommand

区别在于Sql。。类用于SqlServer数据库。MySql类用于MySql数据库

绑定参数:

var cmd = new     MySqlCommand("insert into p4gradetable_copy (Grade, CoilingTemp ) VALUES(@Grade, @CoilingTemp)";

仅指定两列用于说明。

您正在接受一条非常有用的异常消息,说明为什么它无法连接到一条非常无用的为什么它无法工作的消息。摆脱try-catch并处理错误我按照您的建议执行了操作并收到了错误System.Data.SqlClient.SqlException类型的未处理异常发生在System.Data.dll中。当我做类似的事情时,我发现这是一个有用的指针。你能告诉我你在说什么吗?我真的不知道两者在引用方面有什么不同。你必须在你的机器上安装MySql Data client for.Net。必须链接的dll是MySql.Data.Client dll。这是MySql数据库的数据提供程序,您必须引用到项目中。在代码中包含using子句MySql.Data.MySqlClient。然后用mysqlconnection替换代码中的SqlConnetion。我去了SQL网站,下载了mysqlconnectnet文件,并将其添加为我当前项目的参考。但是,我仍然没有看到您正在谈论的客户机文件。此外,在听取您的所有建议后,我已将代码更新为当前状态。您添加的文件名是什么?你下载过.Net的MySql客户端吗?我也更新了我的答案。请查看此链接以添加到您的项目中,vb是否与c类似: