บทความนี้อธิบายวิธีการจัดการโซลูชันองค์ประกอบภาษาต่าง ๆ โดยใช้ Visual .NET c# หรือ Visual 2005 c#
ความต้องการ
รายการต่อไปนี้แสดงฮาร์ดแวร์ที่แนะนำ ซอฟต์แวร์ โครงสร้างพื้นฐานของเครือข่าย และ service pack ที่จำเป็นต้องใช้:
- หนึ่งของระบบปฏิบัติการต่อไปนี้:
- Microsoft Windows 2000 Professional (หรือเซิร์ฟเวอร์)
- Microsoft Windows XP Professional ด้วย.NET Framework ที่ติดตั้ง
- Microsoft Windows Server 2003
- Microsoft Visual Studio .NET หรือ Microsoft Visual Studio 2005
- Microsoft SQL Server รุ่น 7.0 หรือรุ่นใหม่กว่า ด้วย Northwind ฐานข้อมูล
บทความนี้อนุมานว่า คุณไม่คุ้นเคยกับหัวข้อต่อไปนี้:
- สิ่งที่สืบทอดการใช้งาน
- แบบฟอร์ม windows
- ado.net
กลับสู่ด้านบนจัดการโซลูชันการส่วนประกอบของภาษาต่าง ๆ
บทความนี้อธิบายวิธีการสร้างโซลูชันที่ประกอบด้วยสามโครงการต่อไปนี้:
- โปรแกรมประยุกต์ Windows c# แสดงผลที่ใช้วิธีการในคลาสที่สองโครงการอื่น
- โครงการการ Visual Basic .NET หรือไลบรารี 2005 ของ Visual Basic ที่เข้าถึงฐานข้อมูล NorthWind และส่งกลับค่าเป็นชุดข้อมูล
- ไลบรา Visual c# คลารีโครงการที่มีวิธีการที่ปฏิบัติการArrayListสตริงที่วัตถุและกลับ string เดียวนั่นคือ concatenated โดยใช้อินสแตนซ์ของการStringBuilderคลาสที่
เมื่อต้องการสร้างเชลล์ของเป็น Visual c# Windows Forms application ในการแก้ไข ทำตามขั้นตอนเหล่านี้:
- คลิกเริ่มการทำงานชี้ไปที่โปรแกรมแล้ว ชี้ไปยังอย่างใดอย่างหนึ่งMicrosoft Visual Studio .NET(สำหรับ Visual Studio .NET 2002),Microsoft Visual Studio .NET 2003(สำหรับ Microsoft Visual Studio .NET 2003), หรือMicrosoft Visual Studio 2005(สำหรับ Microsoft Visual Studio 2005)
- คลิกMicrosoft Visual Studio .NETหรือMicrosoft Visual Studio 2005.
- คลิกโครงการใหม่แล้ว คลิกแสดงโครงการ c#
หมายเหตุ:ใน Visual Studio 2005 คลิกvisual c#. - ภายใต้แม่แบบคลิกแอพลิเคชันของ windows.
- ในการชื่อ:ฟิลด์ ชนิดHowToMultiCompแล้ว คลิกตกลง.
- เมื่อมีสร้างโครงการ ตรวจสอบให้แน่ใจว่า Explorer โซลูชันการมองเห็นได้ ถ้ามองไม่เห็น Explorer โซลูชัน กด CTRL + ALT + L
ขณะนี้คุณสามารถเชลล์ของแอพลิเคชันของ Visual c# Windows Forms ในการแก้ไขชื่อ HowToMultiComp
เมื่อต้องการสร้างการแก้ไขคอมโพเนนต์ภาษาต่าง ๆ เพิ่มไลบราแบบ Visual c# คลารี และเพิ่ม Visual Basic .NET หรือไลบรารีคลาสของ Visual Basic 2005 แล้ว
ไลบรารีคลาส Visual Basic ต้องเพิ่มก่อน เมื่อต้องการเพิ่มไลบรารีคลาส Visual Basic ดำเนินการดังต่อไปนี้:
- คลิกขวาใน Explorer โซลูชันวิธีการแก้ไขปัญหา 'HowToMultiComp'ชี้ไปที่addแล้ว คลิกโครงการใหม่.
- คลิกโครงการ visual Basic.
หมายเหตุ:ใน Visual Studio 2005 คลิกvisual Basic. - ภายใต้แม่แบบคลิกไลบรารีคลาส.
- ในการชื่อ:กล่อง ชนิดNWClassLibแล้ว คลิกตกลง.
Visual Basic .NET หรือไลบรารีคลาส 2005 ของ Visual Basic ถูกเพิ่มเข้าไปในการแก้ไขปัญหา
Class1.vbขณะนี้เปิดอยู่ในตัวแก้ไขหน้าต่าง - เพิ่มสองนำเข้าdirectives ที่ด้านบนเพื่อเข้า shorthand จุดแสดงระดับชั้นใน namespaces ที่ต่อไปนี้:
Imports System.Data
Imports System.Data.SqlClient
- เมื่อต้องการสร้าง และกรอกข้อมูลแบบชุดข้อมูลมีข้อมูลจากตารางผลิตภัณฑ์ Northwind เพิ่มที่วิธีการต่อไปนี้Class1(คุณอาจต้องการปรับปรุงสตริงการเชื่อมต่อกับคอมพิวเตอร์ของคุณ):
Public Shared Function GetProducts() As DataSet
Dim ds As New DataSet()
Dim sqlDS As New SqlDataAdapter("select * from products", New SqlConnection("server=<network address of instance of SQL Server>;database=northwind;integrated security=sspi"))
sqlDS.Fill(ds)
return ds
End Function
สร้างไลบรารีคลาส c# แสดงผล โดยให้ทำตามขั้นตอนต่อไปนี้::
- คลิกขวาใน Explorer โซลูชันวิธีการแก้ไขปัญหา 'HowToMultiComp'ชี้ไปที่addแล้ว คลิกโครงการใหม่.
- คลิกแสดงโครงการ c#.
หมายเหตุ:ใน Visual Studio 2005 คลิกvisual c#. - ภายใต้แม่แบบคลิกไลบรารีคลาส.
- ในการชื่อ:กล่อง ชนิดSBClassLibแล้ว คลิกตกลง.
เพิ่มไลบ Visual c# คลารารีเพื่อการแก้ไขปัญหา
Class1.csขณะนี้เปิดอยู่ในหน้าต่างตัวแก้ไข - เพิ่มต่อไปนี้การใช้directives ด้านบนของตัวอย่างของรหัส Class1.cs เข้า shorthand dot แสดงการเข้าถึงระดับชั้นในนั้นSystem.Textnamespace และSystem.Collectionsnamespace:
using System.Text;
using System.Collections;
- เพิ่มรหัสต่อไปนี้ในคลาสาธารณะ Class1ซึ่งใช้อินสแตนซ์ของการStringBuilderคลาสของการ concatenate สตริงที่เดียวที่มีอยู่ในการArrayList:
public static String BuildString(ArrayList arlStrings)
{
StringBuilder sb = new StringBuilder();
foreach(String s in arlStrings)
{
sb.Append(s);
sb.Append(", ");
}
return sb.ToString();
}
ขณะนี้คุณสามารถสร้างโปรแกรมประยุกต์ Visual c# Windows Forms ที่จะคอมโพเนนต์นี้ เมื่อต้องการสร้างของ Visual c# Windows แบบฟอร์มแอพลิเคชัน ทำตามขั้นตอนเหล่านี้:
- เมื่อต้องการเพิ่มการอ้างอิงไปยังคอมโพเนนต์ของไลบรารีคลาสสอง ดำเนินการดังต่อไปนี้:
- คลิกขวาใน Explorer โซลูชันอ้างอิง:ภายใต้HowToMultiCompแล้ว คลิกเพิ่มการอ้างอิง.
- ภายใต้โครงการกด ค้างไว้ctrlคลิกคีย์NWClassLibแล้ว คลิกSBClassLib.
- มีโครงการทั้งเลือก คลิกเลือก.
- เมื่อโครงการทั้งสองปรากฏในนั้นคอมโพเนนต์ที่เลือกกล่อง คลิกตกลง.
โครงการในขณะนี้อยู่ภายใต้การอ้างอิงสำหรับแอพลิเคชันของหน้าต่าง
- Form1.cs ถูกเปิดในมุมมองออกแบบ ถ้า Form1.cs ในการคลิกสองครั้งที่ไม่ได้เปิดForm1.csในโซลูชัน Explorer
- กด CTRL + ALT + X เพื่อเปิดกล่องเครื่องมือ แล้ว คลิกWindows Forms.
- ลากปุ่มลงบนแบบฟอร์ม และจากนั้น กด F4 เพื่อเข้าถึงหน้าคุณสมบัติสำหรับปุ่ม
- การเปลี่ยนแปลงนั้นข้อความตั้งค่าคุณสมบัติแสดงผลิตภัณฑ์.
- เพิ่มปุ่มอื่น และเปลี่ยนแปลงแล้ว นี้ข้อความคุณสมบัติการสร้างสตริงการ.
- ลากตัวDataGridควบคุมลงบนแบบฟอร์ม และปล่อยไว้ด้านล่างของปุ่ม ปรับขนาดDataGridควบคุมการเพื่อให้โปรแกรมกรอกข้อมูลพื้นที่ที่เลือกบนแบบฟอร์ม
- คลิกสองครั้งแสดงผลิตภัณฑ์. visual Studio .NET สร้างโดยอัตโนมัติเป็นคลิกตัวจัดการเหตุการณ์
- เพิ่มรหัสต่อไปนี้ในการคลิกตัวจัดการเหตุการณ์:
dataGrid1.DataSource = NWClassLib.Class1.GetProducts().Tables[0];
รหัสนี้ตั้งค่านี้แหล่งข้อมูลคุณสมบัตินี้DataGridไปชุดข้อมูลที่ถูกส่งกลับโดยGetProductsวิธีการในไลบรารีคลาส - เมื่อต้องการสร้างเป็นวินาทีคลิกตัวจัดการเหตุการณ์ คลิกสองครั้งสร้างสตริงการ.
- ใช้เนื้อหาของแต่ละเซลล์ในแถวแรกของ DataGrid หมายถึงเซลล์ 7 รหัสต่อไปนี้แล้ว เพิ่มเนื้อหาไปยังArrayList. กระบวนการArrayListจากนั้นส่งผ่านไปยังSBClassLibraryวิธี ซึ่งส่งกลับค่าสายอักขระที่ปรากฏในตัวMessageBoxฟังก์ชัน อินสแตนซ์ของคลาไม่จำเป็น เนื่องจากวิธีการถูกประกาศก่อนหน้านี้ โดยใช้คำสำคัญแบบคงที่
เพิ่มรหัสต่อไปนี้ไปคลิกตัวจัดการเหตุการณ์:ArrayList arl = new ArrayList();
for(int i = 0; i <= 8; i++)
arl.Add(dataGrid1[0, i].ToString());
MessageBox.Show(SBClassLib.Class1.BuildString(arl));
กลับสู่ด้านบนรายการของรหัสการทำให้เสร็จสมบูรณ์
รหัส (Class1.vb) ที่รายการให้เสร็จสมบูรณ์
Imports System.Data
Imports System.Data.SqlClient
Public Class Class1
Public Shared Function GetProducts() As DataSet
Dim ds As New DataSet()
Dim sqlDS As New SqlDataAdapter("select * from products", New SqlConnection("server=<network address of instance of SQL Server>;database=northwind;uid=sa"))
sqlDS.Fill(ds)
Return ds
End Function
End Class กลับสู่ด้านบนรหัส (Class1.cs) ที่รายการให้เสร็จสมบูรณ์
using System;
using System.Text;
using System.Collections;
namespace SBClassLib
{
public class Class1
{
public Class1()
{
}
public static String BuildString(ArrayList arlStrings)
{
StringBuilder sb = new StringBuilder();
foreach(String s in arlStrings)
{
sb.Append(s);
sb.Append(", ");
}
return sb.ToString();
}
}
}
กลับสู่ด้านบนรหัส (Form1.cs) ที่รายการให้เสร็จสมบูรณ์
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace HowToMultiComp
{
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.DataGrid dataGrid1;
private System.ComponentModel.Container components = null;
public Form1()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.dataGrid1 = new System.Windows.Forms.DataGrid();
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
this.SuspendLayout();
//
// button1
//
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(104, 23);
this.button1.TabIndex = 0;
this.button1.Text = "Show Products";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(136, 0);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(96, 23);
this.button2.TabIndex = 1;
this.button2.Text = "Build String";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// dataGrid1
//
this.dataGrid1.DataMember = "";
this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
this.dataGrid1.Location = new System.Drawing.Point(0, 24);
this.dataGrid1.Name = "dataGrid1";
this.dataGrid1.Size = new System.Drawing.Size(296, 256);
this.dataGrid1.TabIndex = 2;
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.dataGrid1,
this.button2,
this.button1});
this.Name = "Form1";
this.Text = "Form1";
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
this.ResumeLayout(false);
}
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
dataGrid1.DataSource = NWClassLib.Class1.GetProducts().Tables[0];
}
private void button2_Click(object sender, System.EventArgs e)
{
ArrayList arl = new ArrayList();
for(int i = 0; i <= 8; i++)
arl.Add(dataGrid1[0, i].ToString());
MessageBox.Show(SBClassLib.Class1.BuildString(arl));
}
}
}
หมายเหตุ:รหัสควรเปลี่ยนแปลงใน Visual Studio 2005 เมื่อคุณสร้างโครงการ Windows Forms, Visual c# เพิ่มฟอร์มหนึ่งโครงการ โดยค่าเริ่มต้น แบบฟอร์มนี้เป็นชื่อ Form1 แฟ้มที่สองที่แสดงแบบฟอร์มจะเรียกว่า Form1.cs และ Form1.designer.cs คุณสามารถเขียนรหัสของคุณใน Form1.cs แฟ้ม Sesigner.cs คือ ซึ่งผู้ออกแบบฟอร์ม Windows เขียนรหัสที่ใช้การดำเนินการทั้งหมดที่ คุณดำเนินการ โดยการเพิ่มตัวควบคุม
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบฟอร์ม Windows ใน Visual 2005 c# แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
กลับสู่ด้านบนตรวจสอบทำว่า งาน
- กด F5 เพื่อเรียกใช้โปรแกรมประยุกต์ในโหมดการตรวจแก้จุดบกพร่อง
- เมื่อปรากฏในแบบฟอร์ม คลิกเรียกดูผลิตภัณฑ์.
กระบวนการDataGridแสดงผลิตภัณฑ์ทั้งหมดที่อยู่จากตารางผลิตภัณฑ์ Northwind - คลิกสร้างสตริงการ.
กล่องข้อความปรากฏขึ้นและแสดงเนื้อหาของเซลล์ของแถวแรก concatenated ผ่านเซลล์ด้วยดัชนี 7 (zero-based) - กด SHIFT + F5 เพื่อหยุดการดีบัก และกลับไปยัง Visual Studio .NET
กลับสู่ด้านบนการแก้ไขปัญหา
ตรวจสอบให้แน่ใจว่า คุณไม่ confuse ไวยากรณ์เมื่อคุณกำลังทำงานกับภาษาที่สอง visual c# เป็นอย่างยิ่งเฉพาะ และข้อผิดพลาดไม่เสมอว่าพร้อมต์ หรือ intuitive ข้อผิดพลาด ใน Visual Basic .NET หรือ Viusal Basic 2005 ดังนั้น คุณอาจต้องการที่คั่นหน้าเทียบ "ภาษาเท่า" ส่วนของชุดการพัฒนาซอฟต์แวร์.NET Framework การแก้ไขปัญหาเหล่านี้ได้ ค้นหาหัวข้อวิธีใช้ต่อไปนี้ในวิธีใช้ MS:
ms:help://MS.VCC/MS.MSDNVS/vsintro7/html/vxgrfLanguageEquivalents.htm
กลับสู่ด้านบนสำหรับข้อมูลเพิ่มเติม โปรดเยี่ยมชมเว็บไซต์ต่อไปนี้ของ MSDN::
กลับสู่ด้านบนหมายเลขบทความ (Article ID): 816175 - รีวิวครั้งสุดท้าย: 14 มกราคม 2554 - Revision: 2.0
ใช้กับ
- Microsoft Visual C# 2005 Express Edition
- Microsoft Visual C# .NET 2003 Standard Edition
- Microsoft Visual C# .NET 2002 Standard Edition
| kbhowtomaster kbinterop kbappdev kbhowto kbmt KB816175 KbMtth |
แปลโดยคอมพิวเตอร์ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:
816175
(http://support.microsoft.com/kb/816175/en-us/
)