後端Controller

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=Admini1!;database=mvctest;charset=utf8;";
        MySqlConnection conn = new MySqlConnection();
        public ActionResult Index()
        {
            conn.ConnectionString = connString;
            string sql = @"SELECT `id`,`city` FROM `city`";

            DataTable dt = new DataTable();
            MySqlDataAdapter adapter = new MySqlDataAdapter(sql,conn);

            adapter.Fill(dt);

            ViewBag.DT = dt;
            return View();
        }        
    }
}

=======================

MySqlDataAdapter

會自動處理連線跟斷線

原作者提醒

如果MySqlDataAdapter後面還要接MySqlCommand的話,
記得要在Command前面加上連線,
因為MySqlDataAdapter會把資料庫連線關掉,
然後Command就抓不到資料,
就會回傳錯誤了。

 

adapter.Fill(dt);

DataTable中,這裡注意一下如果會用迴圈跑Fill

它會一直加在DataTable的尾端

甚至不同資料表也可以做得到

但就會產生某些欄位變成Null

所以如果設計上是要刪除舊的資料的話

DataTable記得要先Clear或new一個新的出來。

========================

 

前端Cshtml

@{
    ViewBag.Title = "Home Page";
    Layout = null;

    var dt = ViewBag.DT;
}

@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")

<div>
    @for(int i=0;i<dt.Rows.Count;i++)
    {
        @Html.Raw($"代號: {dt.Rows[i]["id"]}, 名稱: {dt.Rows[i]["city"]}")
        <br />
    }
</div>

=====================


 

 

文章標籤
全站熱搜
創作者介紹
創作者 王瘇子 的頭像
王瘇子

王瘇子C# 學習倉庫

王瘇子 發表在 痞客邦 留言(0) 人氣(71)