-
06-09-2011, 09:16 AM #21Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cách trên là lấy hết data từ csdl vào dataset mỗi bảng tương ứng với một datatable trong dataset thôi. Còn bạn muốn làm các quan hệ ràng buộc như ỡ trong database thì bạn cần phải làm DataRelation nữa mới được (http://msdn.microsoft.com/en-us/libr...(v=vs.71).aspx) hoặc bạn làm Typed DataSet bằng cách kéo thã từ Sever Explorer vào cũng được nó sẽ tạo code cho bạn.
-
06-09-2011, 12:28 PM #22Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
nó ko được thành các bảng tương ứng đâu, cậu ah, mình đã chạy thử nó chi ra 1 bảng đầu tiên thôi, còn các bảng khác ko có, mình cũng chỉ cần được ở mức độ chuyển thành các bảng tương ứng thôi (còn tạo quan hệ mình sẽ tạo bằng DataRelation như cậu nói), mình đã check lại rồi, vẫn chỉ ra 1 bảng thôi cậu ah, cậu thử xem lại xem, xem có cách nào chuyển thành các bảng tương ứng trong cùng 1 dataset ko?
Thanks in advance.
-
06-09-2011, 12:35 PM #23Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
được rồi cậu ah, mình vừa sửa lại, thành các bảng riêng rẽ nhau oke. Thanks nhé, bây giờ mình tạo lại quan hệ cho các bảng.
-
06-09-2011, 06:30 PM #24Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Bạn cần phải thêm dấu chấm phẩy ỡ cuối mỗi câu lệnh cũa bạn thì mới được.
Mã:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data.SqlClient;using System.Data; namespace test2{class Program{static void Main(string[] args){SqlConnection cnn = new SqlConnection();cnn.ConnectionString = "server=.\\SQLExpress;database=CIM; Trusted_Connection=true";cnn.Open();string sql1 = @"SELECT * FROM dbo.Terminal;";string sql2= @"SELECT * FROM dbo.ACLineSegment;";string sql3= @"SELECT * FROM dbo.BusBar;";string sql4= @"SELECT * FROM dbo.CircuitBreaker;";string sql5= @"Select * From dbo.ConductingEquipment;";string sql6= @"Select * From dbo.ConnectivityNode;";string sql7= @"Select * From dbo.Disconnector;";string sql8 = @"Select * From dbo.EnergyCOnsumer;";string sql9 =@"Select * From dbo.GEN;";string sql10 = @"Select * From dbo.PowerSystemResource;";string sql11 =@"Select * From dbo.SUBstation";string sql = sql1 + sql2 + sql3 + sql4 + sql5 + sql6 + sql7 + sql8 + sql9 + sql10 + sql11; SqlDataAdapter adapter = new SqlDataAdapter();adapter.SelectCommand = new SqlCommand(sql, cnn); DataSet ds = new DataSet();adapter.Fill(ds);ds.Tables[0].TableName = "Terminal";ds.Tables[1].TableName = "ACLineSegment";ds.Tables[2].TableName = "BusBar";ds.Tables[3].TableName = "CircuitBreaker";ds.Tables[4].TableName = "ConductingEquipment";ds.Tables[5].TableName = "ConnectivityNode";ds.Tables[6].TableName = "Disconnector";ds.Tables[7].TableName = "EnergyConsumer";ds.Tables[8].TableName = "Gen";ds.Tables[9].TableName = "PowerSystemResource";ds.Tables[10].TableName = "SubStation"; foreach (DataRow row in ds.Tables[0].Rows){foreach (DataColumn col in ds.Tables[0].Columns)Console.WriteLine(row[col]);}// for (int row = 0; row < ds.Tables[0].Rows.Count; row++)// for (int col = 0; col < ds.Tables[0].Columns.Count; col++)// Console.WriteLine("{0}{1}",ds.Tables[0].Columns[col], ds.Tables[0].Rows[row][col]); cnn.Close(); }}}
-
06-09-2011, 07:38 PM #25Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cảm ơn FlyingFox đã trả lời,
mình đã chỉnh sửa như góp ý của bạn, chạy ko bị lỗi nhưng kết quả ra ko như mình mong muốn.
Mục tiêu của mình là trong 1 database có bao nhiêu bảng (có quan hệ với nhau) và mình muốn chuyển tất cả các bảng đó thành các bảng tương ứng trong cùng 1 dataset (các quan hệ ràng buộc khóa ngoài vẫn được bảo toàn), còn với đoạn mã trên nó chỉ cho mình 1 bảng trong dataset và bảng đó thì là tổng hợp của các bảng trong database.
Do đó có ai có giải pháp cho vấn đề của mình không?
Thanks in advance.
-
01-10-2011, 02:06 PM #26Silver member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
pro quá, nhìn hoa cả mắt
-
18-10-2012, 04:06 PM #27Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
hiểu hết chổ này củng hết tuần quá , vừa đọc vừa hỏi mà còn không hiểu , đúng là botay
-
24-10-2012, 05:23 PM #28Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Thanks pác nhìu nhìu nha. đọc cũng thấy hiểu hiểu[IMG]images/smilies/kiss.gif[/IMG][IMG]images/smilies/online.gif[/IMG][IMG]images/smilies/online.gif[/IMG][IMG]images/smilies/online.gif[/IMG]
-
10-12-2012, 03:43 PM #29Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Bài viết rất hay và chi tiết. Cám ơn bạn rất nhiều........................................... .
-
04-01-2013, 08:20 AM #30Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cảm ơn bạn đã viết bài rất cụ thể và dễ hiểu.
Cho mình hỏi một vấn đề như thế này. Mình kết nối được đến với csdl rồi.
Mình muốn lấy tất cả các bảng một cách tự động
Mã:dataAdapter.Fill(dataTable); foreach (DataRow dataRow in dataTable.Rows) { // Use the table name if an alias is not found if (dataRow["ProgrammaticAlias"] == DBNull.Value) { TablesCheckedListBox.Items.Add((string)dataRow["TABLE_NAME"]); } else { TablesCheckedListBox.Items.Add((string)dataRow["ProgrammaticAlias"]); } }
Mã:dataAdapter.Fill(dataTable);
Cannot resolve the collation conflict between "Latin1_General_CI_AI" and "SQL_Latin1_General_CP1_CI_AI" in the equal to operation.
Cảm ơn bạn nhiều
Hướng dẫn vui nhộn về phương tiện nong lỗ đít Thuốc giãn hậu môn nghe có vẻ đáng sợ, nhưng đừng sợ! Hướng dẫn này sẽ đưa bạn qua hành trình hích khi dùng dụng cụ làm giãn lỗ đít, khiến nó trở...
Hướng dẫn vui nhộn về sản phẩm làm...