2017-08-21 66 views
0

我需要用c#編程創建兩個表,這些表將有一些列,其中一個是on ID。該ID需要是一個從1開始的計數器,並且每行總是加1,並且該ID必須是第二個表上的外鍵。我該怎麼做?我已經在互聯網上搜索,但沒有發現antything決定性的。連接兩個表與編號

+0

這是一個令人難以置信的模糊問題,但答案是select stuff id1 = id2 .. – BugFinder

+0

我需要創建表格,而不是從中選擇。我可以嘗試幫助你理解我的問題,你不明白什麼? –

+0

如果您在SQL中添加表,則可能更容易手動創建表而不是在c#代碼中執行表。您可以使用SQL Server附帶的SQL Server Management Studio(SSMS)直接在SQL中添加表,或者使用菜單數據在VS中添加表。 – jdweng

回答

0
public class DataStack1 
{ 
    [System.ComponentModel.DataAnnotations.Key] 
    public int id { get; set; } 
    public string somedata { get; set; } 
} 
public class DataStack2 
{ 
    [System.ComponentModel.DataAnnotations.Key] 
    public int id { get; set; } 
    public int DataStack1id { get; set; } 
    public DataStack1 DataStack1 { get; set; } 
    public string somedata { get; set; } 
} 

當你創建自己的DBSets,實體Framewo rk會認識到這種關係。 要創建自己的DBSets,使用下面的代碼:

public class DataContext : DbContext 
{ 
    public DbSet<DataStack1> DataStack1 { get; set; } 
    public DbSet<DataStack2> DataStack2 { get; set; } 
} 

使用下面的代碼來訪問你的表:

using (var dataset = new DataContext()) 
{ 
    var Data = dataset.DataStack1.ToList(); 
} 

您可以在下面的連接字符串添加到您的App.config文件:

<connectionStrings> 
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Data.mdf;Initial Catalog=Data-Project;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> 
+0

感謝您的建議 –

0

你必須創建具有關係到另一個表B. 那麼表B中就會有外鍵指向列於表A的ID表格中的

表A

ID   Column1  Column1 . . . 
    1   name1  value1 
    2   nam2  value2 

表B

ID   Column1 Column2 table_A_id . . . 
    1   name1  value1  1 
    2   name2  value1  1 
    3   name3  value1  2 
+0

感謝您的建議 –

0
DataTable table1 =new DataTable(); 
DataColumn autoIncrement=new DataColumn("AutoIncrement",typeof(System.Int32)); 
table1.Columns.Add(autoIncrement); 
autoIncrement.AutoIncrement=true; 
autoIncrement.AutoIncrementSeed=1; 
autoIncrement.ReadOnly =true; 






DataTable dtEmployee = getEmployeeRecords(); 
DataTable dtDepartment = getDepartmentRecords(); 


DataColumn obj_ParentDepartmentID, obj_ChildDepartmentID; 
DataSet ds = new DataSet(); 
ds.Tables.Add(dtDepartment); 
ds.Tables.Add(dtEmployee); 
obj_ParentDepartmentID = ds.Tables["Department"].Columns["DeptID"]; 
obj_ChildDepartmentID = ds.Tables["Employee"].Columns["DeptID"]; 


dtEmployee.Columns.Add("DepartmentName"); 
DataRelation obj_DataRelation = new DataRelation("dept_reln", obj_ParentDepartmentID, obj_ChildDepartmentID); 
ds.Relations.Add(obj_DataRelation); 



foreach (DataRow dr_Employee in ds.Tables["Employee"].Rows) 
{ 

DataRow dr_Department = dr_Employee.GetParentRow(obj_DataRelation);  
dr_Employee["DepartmentName"] = dr_Department["DeptName"];  

} 
DataTable dtResult = ds.Tables["Employee"].DefaultView.ToTable(false, "EmployeeID", "EmployeeName", "FatherName", "DepartmentName"); 
+0

感謝您的建議 –