台灣最大程式設計社群網站
線上人數
1029
 
會員總數:246691
討論主題:190104
歡迎您免費加入會員
討論區列表 >> C# >> 宣告的物件不知道怎麼從別的事件拿出來用
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
宣告的物件不知道怎麼從別的事件拿出來用
價值 : 20 QP  點閱數:821 回應數:3
樓主

瑋呈洪
門外漢
0 21
204 22
發送站內信

private void Form1_Load(object sender, EventArgs e)
{
DataSet dsXIN = new DataSet("XIN");
DataTable dtCustomer = dsXIN.Tables.Add("CustomerID");
dtCustomer.PrimaryKey = new DataColumn[] { dtCustomer.Columns["CustomerID"] };
dtCustomer.Columns.Add("CustomerID", typeof(string));
dtCustomer.Columns.Add("CompanyName", typeof(string));
dtCustomer.Columns.Add("Contact", typeof(string));
dtCustomer.Columns.Add("Phone", typeof(string));
dtCustomer.Columns.Add("Fax", typeof(string));
//客戶編號
dtCustomer.Columns["CustomerID"].MaxLength = 8;
dtCustomer.Columns["CustomerID"].AllowDBNull = false;
//客戶名稱
dtCustomer.Columns["CompanyName"].MaxLength = 40;
dtCustomer.Columns["CompanyName"].AllowDBNull = false;
dtCustomer.Columns["CompanyName"].Unique = true;
//其他
dtCustomer.Columns["Contact"].MaxLength = 20;
dtCustomer.Columns["Phone"].MaxLength = 20;
dtCustomer.Columns["Fax"].MaxLength = 20;
//--------------------------------
//dataRow
DataRow drnew;
drnew = dtCustomer.NewRow();
drnew["CustomerID"] = "p92297";
drnew["CompanyName"] = "Visual Basic";
drnew["Contact"] = "580";
drnew["Phone"] = "0976382189";
drnew["Fax"] = "20";

dtCustomer.Rows.Add(drnew);
//--------------------------------
//dataRow
DataRow drnew2;
drnew2 = dtCustomer.NewRow();
drnew2["CustomerID"] = "p92298";
drnew2["CompanyName"] = "Visual Basic2";
drnew2["Contact"] = "580";
drnew2["Phone"] = "0976382189";
drnew2["Fax"] = "20";

dtCustomer.Rows.Add(drnew2);

//---------------------------------
dataGridView1.DataSource = dsXIN;
dataGridView1.DataMember = "CustomerID";
dtCustomer.PrimaryKey = new DataColumn[] { dtCustomer.Columns["CustomerID"] };

}

是這樣的 我將 dsXIN和dtCustomer都放在了Form1_Load上面了
現在我要做一個button事件 想要用到 dsXIN和dtCustomer 找不到他們
但是我要把他們兩個宣告在class 就會說dsXIN非靜態類型
請問我該如何宣告他們兩個才能讓我在各個事件拿出來呢





搜尋相關Tags的文章: [ C# 資料庫宣告的物件不知道怎麼從別的事件拿出來用 ] ,
本篇文章發表於2017-08-26 13:33
1樓
回應

小魚
檢舉此回應
你要了解一下區域變數跟全域變數,
因為他是在Form1_Load宣告的區域變數,
你如果要在整個Form都使用它,
就要將變數的宣告拉到外面,
到Form1_Load再定義變數的值。
本篇文章回覆於2017-08-26 14:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

Eucalyptus
檢舉此回應
「但是我要把他們兩個宣告在class 就會說dsXIN非靜態類型」-->前面加上"static"就好了。
static DataSet dsXIN = new DataSet("XIN");
本篇文章回覆於2017-08-28 11:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

春天
檢舉此回應
Static是屬於該class的變數,而不是屬於class實體的,不可以亂用
依你Form1_Load內的使用方式 應該是不用宣告為static
至於為何編譯器會有這個錯誤,可能要提供完整程式碼才能判斷
本篇文章回覆於2017-08-28 12:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.