无法通过C#将数据从ms访问权限传输到mysql

时间:2019-03-01 07:20:27

标签: c# mysql ms-access

这是我第一次在这里发布。.我需要有关如何允许在Virtual Studio上使用c#将Microsoft Access数据库中的数据传输到MySQL工作台的帮助。我使用c#而不是宏选项的原因是出于我公司的偏爱。对不起,如果我的代码混乱,我知道我需要对其进行改进。我从其他网站获取了大部分代码。

有什么办法可以使它工作?我主要尝试调试它,当它开始运行时,没有数据流入MySQL工作台

感谢您的帮助和指导

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.IO;
using System.Windows.Forms;
using System.Data.OleDb;
using MySql.Data.MySqlClient;
using System.Configuration;

namespace DatabaseMsAccesstoSql
{
    public partial class Form1 : Form
    {
        public string backupFile;
        public DataTable dt1;
        public string sqlcomm;

        private OleDbConnection myConn = new OleDbConnection();
        private DataSet ds;

        public Form1()
        {
            InitializeComponent();

            DataTable dt_Data = ReadDataFromAccess();
            InsertDatatoTable(dt_Data);

        }

        private DataTable ReadDataFromAccess()
        {
            try
            {
                OleDbConnection conn;
                OleDbDataAdapter adapter1;
                conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= C:\\Users\\Administrator\\Desktop\\Microsoft Access File\\Inventory Management System.accdb ; Jet OLEDB:Database Password =123456789");
                dt1 = new DataTable();
                conn.Open();
                //Database have been connected
                //Checking data in the Microsoft Access          
                sqlcomm = "SELECT* FROM Inventory_Management ";
                adapter1 = new OleDbDataAdapter(sqlcomm, conn);
                OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter1);
                dt1.Reset();
                adapter1.Fill(dt1);
                if (dt1.Rows.Count > 0)
                {
                    DataTable dt_Tbl = new DataTable();
                    dt_Tbl.Columns.Add("Product_Name");
                    dt_Tbl.Columns.Add("Product_ID");
                    dt_Tbl.Columns.Add("Product_Category");
                    dt_Tbl.Columns.Add("Quantity");
                    dt_Tbl.Columns.Add("Location");
                    dt_Tbl.Columns.Add("Manufacturer");
                    dt_Tbl.Columns.Add("Remark");
                    dt_Tbl.Columns.Add("QR_Code");
                    dt_Tbl.Columns.Add("Description");
                    dt_Tbl.Columns.Add("MinQuantity");
                    dt_Tbl.Columns.Add("Color_Type");
                    dt_Tbl.Columns.Add("Owner");
                    dt_Tbl.Columns.Add("Project _Name");


                    for (int i = 0; i < dt1.Rows.Count; i++)
                    {
                        List<string> list = new List<string>();
                        DataRow r = dt1.Rows[i];

                        DataRow dr;
                        dr = dt_Tbl.NewRow();
                        dr = r;
                        dt_Tbl.Rows.Add(dr);

                        //string crd = r["Product_Name"].ToString();
                        //list.Add(r["Product_ID"].ToString());
                        //list.Add(r["Product_Category"].ToString());
                        //list.Add(r["Quantity"].ToString());
                        //list.Add(r["Location"].ToString());
                        //list.Add(r["Manufacturer"].ToString());
                        //list.Add(r["Remark"].ToString());
                        //list.Add(r["QR_Code"].ToString());
                        //list.Add(r["Description"].ToString());
                        //list.Add(r["MinQuantity"].ToString());
                        //list.Add(r["Color_Type"].ToString());
                        //list.Add(r["Owner"].ToString());
                        //list.Add(r["Project _Name"].ToString());
                    }

                    conn.Close();

                    return dt_Tbl;
                }
                else
                    return null;
            }
            catch (Exception ex)
            {
                return null;
            }
        }

        private void InsertDatatoTable(DataTable dt_Tbl)
        {
            MySqlConnection mConnection = null;
            try
            {
                string currenttime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                /**** JUJU : MODIFY to your table columns ****/
                StringBuilder sCommand = new StringBuilder("REPLACE INTO inventorysystem(Product_Name,Product_ID,Product_Category,Quantity,Location,Manufacturer,Remark,QR_Code,Description,MinQuantity,Color_Type,Owner,Project_Name) VALUES ");
                using (mConnection = new MySqlConnection(ConfigurationManager.ConnectionStrings["Data_store"].ToString()))  //"C:\\ProgramData\\MySQL\\MySQLServer9.0\\Data\\"))
                {
                    List<string> Rows = new List<string>();

                    for (int i = 0; i < dt_Tbl.Rows.Count; i++)
                    {
                        Rows.Add(string.Format("('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}')", dt_Tbl.Rows[i][0].ToString(), dt_Tbl.Rows[i][1].ToString(), dt_Tbl.Rows[i][2].ToString(), dt_Tbl.Rows[i][3].ToString(), dt_Tbl.Rows[i][4].ToString(), dt_Tbl.Rows[i][5].ToString(),
                            dt_Tbl.Rows[i][6].ToString(), dt_Tbl.Rows[i][7].ToString(), dt_Tbl.Rows[i][8].ToString(), dt_Tbl.Rows[i][9].ToString(), dt_Tbl.Rows[i][10].ToString(), dt_Tbl.Rows[i][11].ToString(), dt_Tbl.Rows[i][12].ToString(), currenttime));
                    }
                    sCommand.Append(string.Join(",", Rows));
                    sCommand.Append(";");
                    mConnection.Open();
                    using (MySqlCommand myCmd = new MySqlCommand(sCommand.ToString(), mConnection))
                    {
                        myCmd.CommandType = CommandType.Text;
                        myCmd.ExecuteNonQuery();
                    }

                    //cmd.ExecuteNonQuery();
                }
            }
            catch (Exception e)
            {
                return;
            }
            finally
            {
                mConnection.Close();
            }
        }

        //private void Form1_Load(object sender, EventArgs e)
        //{
        //    try
        //    {
        //        myConn.Open();
        //        checkconnection.Text = "Connection Successful";
        //        //DataSet dtSet = new DataSet();
        //        myConn.Close();
        //    }
        //    catch (Exception ex)
        //    {
        //        MessageBox.Show("Error " + ex);
        //    }
        //}

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                myConn.Open();
                OleDbCommand command = new OleDbCommand();
                command.Connection = myConn;
                string query = "SELECT * from Inventory_Management";
                command.CommandText = query;

                OleDbDataAdapter da = new OleDbDataAdapter(command);
                DataTable dt = new DataTable();
                da.Fill(dt);
                dataGridView1.DataSource = dt;
            }
            catch
            {
            }
        }
    }
}

0 个答案:

没有答案