Visual Studio 2012에서 MySql이 작동하지 않음 : 유형 또는 네임 스페이스 이름 'MySql'을 찾을 수 없습니다.

1 월

이 코드가 주어지면 :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
//Include mysql client namespace.

using MySql.Data.MySqlClient;   // That one doesn't work !!!
using System.Configuration;

namespace CSharpMySqlSample
{
    public partial class frmMySqlSample : Form
    {
        //Read connection string from application settings file
        string   ConnectionString = ConfigurationSettings.AppSettings["ConnectionString"];
        MySqlConnection connection;
        MySqlDataAdapter adapter;
        DataTable DTItems;
        public frmMySqlSample()
        {
            InitializeComponent();
        }

        private void frmMySqlSample_Load(object sender, EventArgs e)
        {
            //Initialize mysql connection
            connection = new MySqlConnection(ConnectionString);

            //Get all items in datatable
            DTItems = GetAllItems();

            //Fill grid with items
            dataGridView1.DataSource = DTItems;
        }

        //Get all items from database into datatable
        DataTable GetAllItems()
        {
            try
            {
                //prepare query to get all records from items table
                string query = "select * from items";
                //prepare adapter to run query
                adapter = new MySqlDataAdapter(query, connection);
                DataSet DS = new DataSet();
                //get query results in dataset
                adapter.Fill(DS);

                // Set the UPDATE command and parameters.
                adapter.UpdateCommand = new MySqlCommand(
                    "UPDATE items SET ItemName=@ItemName, Price=@Price, AvailableQuantity=@AvailableQuantity, Updated_Dt=NOW() WHERE ItemNumber=@ItemNumber;",
                    connection);
                adapter.UpdateCommand.Parameters.Add("@ItemNumber", MySqlDbType.Int16, 4, "ItemNumber");
                adapter.UpdateCommand.Parameters.Add("@ItemName", MySqlDbType.VarChar, 100, "ItemName");
                adapter.UpdateCommand.Parameters.Add("@Price", MySqlDbType.Decimal, 10, "Price");
                adapter.UpdateCommand.Parameters.Add("@AvailableQuantity", MySqlDbType.Int16, 11, "AvailableQuantity");
                adapter.UpdateCommand.UpdatedRowSource = UpdateRowSource.None;

                // Set the INSERT command and parameter.
                adapter.InsertCommand = new MySqlCommand(
                    "INSERT INTO items VALUES (@ItemNumber,@ItemName,@Price,@AvailableQuantity,NOW());",
                    connection);
                adapter.InsertCommand.Parameters.Add("@ItemNumber", MySqlDbType.Int16, 4, "ItemNumber");
                adapter.InsertCommand.Parameters.Add("@ItemName", MySqlDbType.VarChar, 100, "ItemName");
                adapter.InsertCommand.Parameters.Add("@Price", MySqlDbType.Decimal, 10, "Price");
                adapter.InsertCommand.Parameters.Add("@AvailableQuantity", MySqlDbType.Int16, 11, "AvailableQuantity");
                adapter.InsertCommand.UpdatedRowSource = UpdateRowSource.None;

                // Set the DELETE command and parameter.
                adapter.DeleteCommand = new MySqlCommand(
                    "DELETE FROM items "
                    + "WHERE ItemNumber=@ItemNumber;", connection);
                adapter.DeleteCommand.Parameters.Add("@ItemNumber",
                  MySqlDbType.Int16, 4, "ItemNumber");
                adapter.DeleteCommand.UpdatedRowSource = UpdateRowSource.None;

                //return datatable with all records
                return DS.Tables[0];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return null;
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                //Save records in database using DTItems which is datasource for Grid
                adapter.Update(DTItems);
                //Refresh grid
                DTItems = GetAllItems();
                dataGridView1.DataSource = DTItems;
                MessageBox.Show("Items saved successfully...");
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
            {
                //Delete a row from grid first.
                dataGridView1.Rows.Remove(dataGridView1.SelectedRows[0]);

                //Save records again. This will delete record from database.
                adapter.Update(DTItems);

                //Refresh grid. Get items again from database and show it in grid.
                DTItems = GetAllItems();
                dataGridView1.DataSource = DTItems;
                MessageBox.Show("Selected item deleted successfully...");
            }
            else
            {
                MessageBox.Show("You must select entire row in order to delete it.");
            }
        }
    }
}

컴파일 후 다음을 얻습니다.

error CS0246: The type or namespace name 'MySqlConnection' could not be found (are you missing a using directive or an assembly reference?)

하지만 커넥터를 확인했습니다. 여기에 이미지 설명 입력

그리고 설치되어 ..

그래서 무엇이 잘못 되었습니까?

감사

다 미스

참조를 추가해야 MySql.Data.dll하지만 NuGetdll 을 사용하여 패키지로 추가 할 수 있습니다.

아래는 패키지 관리자 콘솔 명령입니다.

PM> Install-Package MySql.Data

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관