Tôi có một số DataTable
được điền từ truy vấn SQL vào cơ sở dữ liệu cục bộ, nhưng tôi không biết cách trích xuất dữ liệu từ nó. phương thức Main (trong chương trình thử nghiệm):Làm cách nào để trích xuất dữ liệu từ một DataTable?
static void Main(string[] args)
{
const string connectionString = "server=localhost\\SQLExpress;database=master;integrated Security=SSPI;";
DataTable table = new DataTable("allPrograms");
using (var conn = new SqlConnection(connectionString))
{
Console.WriteLine("connection created successfuly");
string command = "SELECT * FROM Programs";
using (var cmd = new SqlCommand(command, conn))
{
Console.WriteLine("command created successfuly");
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
conn.Open();
Console.WriteLine("connection opened successfuly");
adapt.Fill(table);
conn.Close();
Console.WriteLine("connection closed successfuly");
}
}
Console.Read();
}
Lệnh tôi sử dụng để tạo các bảng trong cơ sở dữ liệu của tôi:
create table programs
(
progid int primary key identity(1,1),
name nvarchar(255),
description nvarchar(500),
iconFile nvarchar(255),
installScript nvarchar(255)
)
Làm thế nào tôi có thể trích xuất dữ liệu từ DataTable
thành một dạng có ý nghĩa sử dụng không?
Tôi biết đây là một câu trả lời cũ, nhưng bạn không cần phải làm một dàn diễn viên trong vòng lặp foreach để cho phép lập chỉ mục? Tôi đã không thể làm điều gì đó như thế này cho đến khi tôi thay đổi mã để trông giống như sau: foreach (Dòng DataRow trong YourDataTable.Rows.Cast()) ... –
awh112
Ngay cả nhận xét cũ hơn, nhưng không cần để cast: 'foreach' hoạt động, bởi vì' Rows' là một tập hợp ('DataRowCollection'). Mặc dù, bạn cần sử dụng '.Cast()' nếu bạn muốn sử dụng một số phương thức Linq ('.Where()', ví dụ). –
@marc_s Cảm ơn bạn –