iT邦幫忙

0

我是程式新手 求各位幫忙 用 Visual Studio 2015 讀取資料庫

  • 分享至 

  • xImage

我對程式語言幾乎不會
目前還在摸索階段
以下題目是這樣:
建立一個資料表有,筆電,滑鼠,螢幕,鍵盤,電腦,和,其價格
開一個Web,把剛剛建立的資料表,顯示完整表格
我寫SQL建立資料檔案是用 HeidiSQL 這個程式檔案下去
表格已經建立好了

Web建立是Visual Studio 2015

我試了一整天還不行
如下程式碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Data;
using System.Data.SqlClient;
using MySql.Data.MySqlClient;

namespace Web_TSEST_2018._4._9
{
public class Global : System.Web.HttpApplication
{

    protected void Application_Start(object sender, EventArgs e)
    {
        string connString = "server=127.0.0.1;port=3307;user id=root;password=root;database=2018.4.3-test-price;charset=utf8;";
        MySqlConnection conn = new MySqlConnection();
        conn.ConnectionString = connString;
        if (conn.State != ConnectionState.Open)
            conn.Open();
        string sql = @"select * from sales";
        DataTable dt = new DataTable();
        MySqlDataAdapter adapter = new MySqlDataAdapter(sql, conn);
        adapter.Fill(dt);
        conn.Close();
        MySqlDataReader reader;
        conn.Open();
        MySqlCommand cmd = new MySqlCommand(sql, conn);
        reader = cmd.ExecuteReader();
        while (reader.Read())
        {
            String Name = (String) reader["select * from sales"];
            int IDint = (int)reader["Item"];
        }
        conn.Close();

    }
}

}

沒有紅色波浪號,執行都沒法會卡住

怎麼樣才能,我是不是有其中哪寫錯

有人能教我嗎?

要學資料庫導入,要從哪開始先著手?

C#?MySQL?資料庫導入?

因為這題目是練習題

我自己有買書 Visual Studio C# 2017 程式設計經典

看更多先前的討論...收起先前的討論...
先讀懂每一行的意思再說吧~
既然你有買書,建議你按步就班的讀,
書裡應該有循序漸進的教學,我也是看書學的,
如果你還不懂程式碼,可以先用GridView的方式,
從前端建立資料庫連線與你要的表單,會比較容易,
不要一開始就用後端寫程式碼建立連線,
我想你可能沒做好資料庫連線的設定哦!
你的ODBC有設定嗎?
推測你是使用MySQL, 但是一般MySQL是使用 Port 3306, 你的程式裡面卻是去連Port 3307.
另外 database, 你取名為 2018.4.3-test-price
這樣是很不好的,最好取為單純一些,別用 - . 這些分隔或是計算用的符號,增加無謂的麻煩.

另外你似乎把一堆程式碼,推放在一起.而不明白其用途.
建議先別看這本書了.因為 Visual Studio 是工具, Visual C# 是語言.你看了,卻連這個都分不清楚.C# 其實是不太適合新手入門的.
與其陷入這個迷魂陣,不如用簡單好上手的語言來學.也別急著想要趕快做出一些程式.不如先花點時間把MySQL學一學,這個以後都用的到.
ccchiou iT邦新手 5 級 ‧ 2018-04-10 19:41:49 檢舉
猜你卡在oConn.Open
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
Corey Chen
iT邦新手 4 級 ‧ 2018-04-10 10:52:58
最佳解答

一些重點,前面大大都敘述過了,但程式碼的部份,我會這樣寫,你可以參考一下。

protected void Application_Start(object sender, EventArgs e)
{
    var connString ="server=127.0.0.1;port=3307;userid=root;" +
                    "password=root;database=2018.4.3-test-price;" +
                    "charset=utf8;";
    var commString = "select * from sales";
    var dt = new DataTable();
    using(MySqlConnection conn = new MySqlConnection(connString))
    {
        using(MySqlCommand comm = new MySqlCommand(commString, conn)
        {
            try
            {
                conn.Open();
                MySqlDataReader reader = comm.ExecuteReader();
                dt.Load(reader);
            }
            catch(Exception ex)
            {
                throw ex;
            }
         }
     }
     // 這段看您要取得資料後要做什麼.....
}
ted8224 iT邦新手 5 級 ‧ 2018-04-12 09:10:37 檢舉

求救
之後怎麼寫....
前端呢?

2
海綿寶寶
iT邦大神 1 級 ‧ 2018-04-10 10:13:21

1.先安裝書附送的光碟裡的程式,使其能正常執行
2.再一列一列地修改成你想要的題目

過程中若光碟所附的程式有問題
可以去信詢問書的作者

0
gn00044255
iT邦新手 5 級 ‧ 2018-04-10 14:05:40

正常是作連線=>command=>adapter到dt
string connString = "server=127.0.0.1;port=3307;user id=root;password=root;database=2018.4.3-test-price;charset=utf8;";

MySqlConnection conn = new MySqlConnection(connString);
conn.Open();

string sql = @"select * from sales";

MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);

然後再去抓dt的東西

看更多先前的回應...收起先前的回應...
ted8224 iT邦新手 5 級 ‧ 2018-04-11 09:57:18 檢舉

請問我怎麼抓dt的東西?
我修改後是這樣

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using MySql.Data.MySqlClient;
using System.Data;

namespace Web_TSEST_2018._4._9
{
public partial class WebForm2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string connString = "server=127.0.0.1;port=3307;user id=root;password=root;database=2018.4.3-test-price;charset=utf8;";
MySqlConnection conn = new MySqlConnection();

        conn.ConnectionString = connString;
        if (conn.State != ConnectionState.Open)
            conn.Open();
        string sql = @"select * from sales";

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

        ViewBag.DT = dt;
        return View();

      

    }
}

}

然後 ViewBag 和 View 是紅色波浪號 請問怎麼除錯...

然後前端怎麼寫呢?

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="Web_TSEST_2018._4._9.WebForm2" %>

{
    @Html.Raw($"Item,Price ")
    <br />
}

</div>
</form>

求解

後端用JSON將資料傳回,前端看你用那種,我是用AJAX去接。
建議你在還不是很熟悉的情況下,不要做WEB!
用最簡單的WinForm來做,先讓自己了解且熟悉如何去介接後端資料,
且可以進行CURD,等比較上手後,再來試著去做WEB。

var jsonDT = JsonConvert.SerializeObject(dt, 
             new DataTableConverter());
return Json(jsonDT);
ted8224 iT邦新手 5 級 ‧ 2018-04-11 10:52:33 檢舉

因為老師 出的練習題是 這樣 所以...
他有提示我一個東西叫 gridview 去弄
可是 我找好久還是 弄得不是很厲害

即然是作業,那就只能提供您方向了。
請參考下述範例.....
[https://www.c-sharpcorner.com/article/how-to-convert-and-bind-json-string-in-to-asp-net-gridview-with-c-sharp/](How To Convert And Bind JSON String In To ASP.NET GridView With C#)

我提供的事WPF的寫法
1.設定Gridview來源等於DT gridview.itemssource=dt;
2.設定DataColumn綁定的位置 Text="{Binging 欄位名稱}"

ted8224 iT邦新手 5 級 ‧ 2018-04-11 11:39:59 檢舉

https://ithelp.ithome.com.tw/upload/images/20180411/201094254KLN5IgInU.jpg

是這樣 我要把這個資料庫 弄到 Web裡

使用Visual Studio 2015工具

老師給的題目是這樣
提示用gridview 來做

沒程式基礎 很難解是這一段
1.gridview 是一個容器,所以要拉一個gridview
2.把DB的資料塞在DataTable裡面(剛開始那裏)
3.把DataTable的資料塞進gridview
4.正常老師應該會講怎麼塞,才會給你們作練習

ted8224 iT邦新手 5 級 ‧ 2018-04-11 15:35:09 檢舉

是 工作上的前輩給的練習題也算老師吧 因為都不會 上網 也是 找到片段 資料 拼湊,搞得東湊西湊
弄得四不像
Run 跑也不行
求救
是不是我一開始用資料庫HeidiSQL 這個 東西 就不對?
資料庫 直接 在 Visual Studio 2015 建立一個嗎?

我真想有人 可以 幫我寫這簡單的程式 我在 看一行一行 代表什麼意思

抓片段別人的好難理解阿

問他會比較快,因為面對面教@@

ted8224 iT邦新手 5 級 ‧ 2018-04-12 09:08:45 檢舉

他比較忙,因為工作關係 他常常不在辦公室

ted8224 iT邦新手 5 級 ‧ 2018-04-12 09:18:32 檢舉

gridview 拉出來了
然後裡面要寫什麼?

我要發表回答

立即登入回答