iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 16
0
Modern Web

ASP.NET MVC網頁程式介紹系列 第 16

[Day 16] 使用C#連結MySql(MariaDB)資料庫(二)

今天開始資料庫實作的部分,為了建立使用者資料,這兩天先建 城市 跟 鄉鎮 的資料起來,(為了節省時間,一天建一個表的資料)

需要引入的專案名稱

using MySql.Data.MySqlClient;
using System.Data;

首先要先有連線字串

string connString = "server=127.0.0.1;port=3306;user id=root;password=***;database=mvctest;charset=utf8;";

這是MySql的連線字串,如果要連MS-SQL寫法不一樣
其中server是資料庫的IP,port是資料庫的Port,MySql預設是3306,MS-SQL預設是1433,user id是使用者帳號,password是密碼,通常要寫密碼,在這裡先馬賽克掉了,database是要連線的資料庫名稱,如果在同一個資料庫系統中,也可以連其他資料庫名稱,然後到這個資料庫抓資料,不過語法要改一下;charset編碼通用的是utf8

然後要有一個Connection

MySqlConnection conn = new MySqlConnection();

正常來說會獨立做一個Class,不過在這裡直接在網頁建表就好了,以下是整個程式碼,下面再做說明

using MVCTest.Models;
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MVCTest.Controllers
{
    public class HomeController : Controller
    {
        string connString = "server=127.0.0.1;port=3306;user id=root;password=Acuteboy1215;database=mvctest;charset=utf8;";
        MySqlConnection conn = new MySqlConnection();
        public ActionResult Index()
        {
            conn.ConnectionString = connString;
            if (conn.State != ConnectionState.Open)
                conn.Open();
            string sql = @"INSERT INTO `City` (`Id`, `City`) VALUES
                           ('0', '基隆市'),
                           ('1', '臺北市'),
                           ('2', '新北市'),
                           ('3', '桃園市'),
                           ('4', '新竹市'),
                           ('5', '新竹縣'),
                           ('6', '宜蘭縣'),
                           ('7', '苗栗縣'),
                           ('8', '臺中市'),
                           ('9', '彰化縣'),
                           ('A', '南投縣'),
                           ('B', '雲林縣'),
                           ('C', '嘉義市'),
                           ('D', '嘉義縣'),
                           ('E', '臺南市'),
                           ('F', '高雄市'),
                           ('G', '屏東縣'),
                           ('H', '澎湖縣'),
                           ('I', '花蓮縣'),
                           ('J', '臺東縣'),
                           ('K', '金門縣'),
                           ('L', '連江縣');
";
            MySqlCommand cmd = new MySqlCommand(sql, conn);
            int index = cmd.ExecuteNonQuery();
            bool success = false;
            if (index > 0)
                success = true;
            else
                success = false;
            ViewBag.Success = success;
            conn.Close();
            return View();
        }
    }
}

首先要幫連線跟字串連結起來,就是這一行

conn.ConnectionString = connString;

然後要將連線打開,但是如果已經開了,再打開一次會出錯,所以要先判斷

if (conn.State != ConnectionState.Open)
    conn.Open();

接下來是SQL語法,關於SQL語法這裡不多做說明,網路上都可以查得到語法,總是這是幫資料表新增資料得語法,SQL語法大致上可以分為讀取和執行兩種,這是執行的部分,讀取的部分方法就比較多一點。

接下來建一個Command

MySqlCommand cmd = new MySqlCommand(sql, conn);

然後執行指令

int index = cmd.ExecuteNonQuery();

ExecuteNonQuery如果用在新增修改刪除,成功會返回受影響的列數,失敗會傳回0,最後再判斷是否成功

結果:

建立成功!
(只有一行而已,不想截圖了)

今天到此為止,明天繼續鄉鎮市的建立吧。
(感覺好像有點混,時間寶貴嘛...)

--
小弟不才,
如果有謬誤或是要補充的,
都歡迎一起來討論!


上一篇
[Day 15] 使用C#連結MySql(MariaDB)資料庫(一)
下一篇
[Day 17] 使用C#連結MySql(MariaDB)資料庫(三)
系列文
ASP.NET MVC網頁程式介紹30

尚未有邦友留言

立即登入留言