:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

เอาข้อมูลที่ได้จาก firebaseresponse รูปแบบคล้าย ๆ JSON เอามาใส่เป็น fill in datagrideview มีคำสั่งอย่างไร

ฟอรัมถาม-ตอบเกี่ยวกับ C#
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่างเพิ่มเติม)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
gaka
Member
Member
Posts: 8
Joined: Fri Oct 12, 2018 7:46 am

เอาข้อมูลที่ได้จาก firebaseresponse รูปแบบคล้าย ๆ JSON เอามาใส่เป็น fill in datagrideview มีคำสั่งอย่างไร

#1

Post by gaka »

Code: Select all

using System;
using System.Data;
using FireSharp.Config;
using FireSharp.Interfaces;
using FireSharp.Response;
using System.Windows.Forms;


namespace Cshrp_doups
{
    public partial class Form1 : Form
    {
        IFirebaseConfig config = new FirebaseConfig
        {
            AuthSecret = "SrqpM36Rj5S6R4ATa4tzYdTPN0EEcgR",
            BasePath = "https://doups.firebaseio.com/"
        };
        IFirebaseClient client;
        
        public Form1()
        {
            InitializeComponent();
        }

        private async void btmsearch_Click(object sender, EventArgs e)
        {
            
            //ค้นหาข้อมูลทำตรงนี
            FirebaseResponse response = await client.GetAsync("customer/" + txtclientsearchkey.Text);
            Customer cust = response.ResultAs<Customer>();
            //debug.print command in vb = System.Diagnostics.Debug.WriteLine("Hello world");
            // or System.Console.WriteLine("Hello world"); 
             if (cust != null)
            {
                Console.WriteLine(cust.custid.ToString());
                dataGridView1.Rows.Clear();
                dataGridView1.Rows.Add(cust.custid, cust.customername, cust.customeraccount, cust.custpreflang);
            }
        }    
        private void button3_Click(object sender, EventArgs e)
        {
            //Add shipment data put <code> here to open transaction window
	}
        private void Form1_Load(object sender, EventArgs e)
        {
            client = new FireSharp.FirebaseClient(config);
            if (client != null)
            {
                //MessageBox.Show("connected");
            }
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            int rowIndex = e.RowIndex;
            DataGridViewRow row = dataGridView1.Rows[rowIndex];
            //txtclientsearchkey.Text = dataGridView1.Rows[1].Cells[1].Value.ToString();
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            Console.WriteLine(this.comboBox1.Text);
        }

        private void btmaddnew_Click(object sender, EventArgs e)
        {
            Form newcust = new AddCustomer();
            newcust.Show();
        }

        private async void button1_Click(object sender, EventArgs e)
        {
        
            FirebaseResponse respallcust = await client.GetAsync("customer/");
        // ตรงนี้จะได้ข้อมูลออกมาเป็นชุดคล้าย json 
        /*
        **JSON ที่ได้หน้าตาแบบนี้**
{
  "1" : {
    "custid" : "1",
    "customeraccount" : "FEE45GH",
    "customername" : "Bay bank",
    "custpreflang" : "EN"
  },
  "2" : {
    "custid" : "2",
    "customeraccount" : "FT4GGH",
    "customername" : "BBL ",
    "custpreflang" : "EN"
  },
  "77" : {
    "custid" : "77",
    "customeraccount" : "MR4GGS",
    "customername" : "Max77",
    "custpreflang" : "EN"
  },
  "123456789" : {
    "custid" : "123456789",
    "customeraccount" : "FE3CDE",
    "customername" : "Kitjar",
    "custpreflang" : "EN"
  },
  "234569876" : {
    "custid" : "234569876",
    "customeraccount" : "REF2GGY",
    "customername" : "Yanakorn",
    "custpreflang" : "EN"
  },
  "345667JK" : {
    "custid" : "345667JK",
    "customeraccount" : "N/A",
    "customername" : "Somchai",
    "custpreflang" : "EN"
  },
  "8EE9433" : {
    "custid" : "8EE9433",
    "customeraccount" : "8EE9433",
    "customername" : "nothing 8EE9433",
    "custpreflang" : "EN"
  }
}
        */
        
            Data allcust = respallcust.ResultAs<Data>();
            try
            {
                dataGridView1.Rows.Clear();
                //ที่จะถามคือตรงนี้ เอาข้อมูลที่ได้จาก firebaseresponse รูปแบบคล้าย ๆ JSON เอามาใส่เป็น fill in datagrideview มีคำสั่งอย่างไร
                dataGridView1.Rows.Add(allcust.custid, allcust.customername, allcust.customeraccount, allcust.custpreflang);
            }
            catch
            {

            }
        }
    }
  
}
พอดีผมพึ่งหัด c# ผิดยังไงรบกวนชี้แนะด้วยครับ
เอาข้อมูลที่ได้จาก firebaseresponse รูปแบบคล้าย ๆ JSON เอามาใส่เป็น fill in datagrideview มีคำสั่งอย่างไร
User avatar
snasui
Site Admin
Site Admin
Posts: 30906
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เอาข้อมูลที่ได้จาก firebaseresponse รูปแบบคล้าย ๆ JSON เอามาใส่เป็น fill in datagrideview มีคำสั่งอย่างไร

#2

Post by snasui »

:D ผมไม่เคยเขียนติดต่อ Filebase ครับ

ลองดูตาม Link นี้เผื่อพอช่วยได้ครับ https://github.com/step-up-labs/firebas ... -485153614
gaka
Member
Member
Posts: 8
Joined: Fri Oct 12, 2018 7:46 am

Re: เอาข้อมูลที่ได้จาก firebaseresponse รูปแบบคล้าย ๆ JSON เอามาใส่เป็น fill in datagrideview มีคำสั่งอย่างไร

#3

Post by gaka »

ที่เขียน เชื่อมต่อกับฐานข้อมูล เป็นแบบไหนครับ เชื่อมต่อผ่าน database ที่ include เข้ามาใน Project หรือ สร้างเป็น Connection adapter พอดีผม ทดลองใช้ database เป็น access accdb
ตัว odbc Driver ที่ลงในเครื่อง มันใช้ได้แต่ mdb
ยังหาทางแก้ไม่ได้พยายามที่จะไม่ลง database ไว้ในเครื่องใดเครื่องหนึ่ง ไม่ว่าจะเป็น Microsoft SQL หรือ mysql จึงโดดไปใช้บนไฟล์เบส
User avatar
snasui
Site Admin
Site Admin
Posts: 30906
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เอาข้อมูลที่ได้จาก firebaseresponse รูปแบบคล้าย ๆ JSON เอามาใส่เป็น fill in datagrideview มีคำสั่งอย่างไร

#4

Post by snasui »

:D ปกติผมเขียนแบบ Connectionstring ติดต่อ SQL ตามตัวอย่างด้านล่างครับ

Code: Select all

public static void ConnectToNote(Excel.Application App)
{
	string connStr = @"Data source=Server;
					Initial Catalog=Database;
					User ID=user;
					Password=password";
	SqlConnection sqlcon = new SqlConnection(connStr);

	string sqlStr = @"Select * From [whatEver]";
	SqlDataAdapter sqlda = new SqlDataAdapter(sqlStr, sqlcon);
	System.Data.DataTable dtbl = new System.Data.DataTable();
	sqlda.Fill(dtbl);

	Workbook twb = App.ActiveWorkbook;
	Worksheet wks = twb.Worksheets[1];
	int i = 0;
	wks.Range["a1"].Value = dtbl.Columns[0].ColumnName;

	foreach (DataRow row in dtbl.Rows)
	{
		i++;
		wks.Range["a1"].Offset[i,0].Value = row["xID"];               
	}
}
User avatar
cheapache
Member
Member
Posts: 72
Joined: Mon Sep 07, 2015 10:39 am

Re: เอาข้อมูลที่ได้จาก firebaseresponse รูปแบบคล้าย ๆ JSON เอามาใส่เป็น fill in datagrideview มีคำสั่งอย่างไร

#5

Post by cheapache »

เมื่อทำการดึงข้อมูลจากไฟล์ base แล้วได้เป็น json object มา

ตามความเข้าใจของผมนะครับ ให้สร้างตัว model ที่ระบุ Property name ของข้อมูลที่เราต้องการตัวอย่างเช่น

Code: Select all

public class SomethingModel {
    Jsonproperty["Id"]
    public int Id {get; set;}
    JsonProperty["Name"]
    public string Name {get; set;}
}

var result = JsonSerializer.Serialize<List<SomethingModel>(response);
foreach (var item in result){
	dataGrid.Row.Add(item);
}
ประมาณนี้ครับ
Post Reply