Здесь http://www.c-sharpcorner.com/UploadFile/rupadhyaya/TypedDataSets12032005021013AM/TypedDataSets.aspx он говорит: «мы можем указать тип данных при создании DataColumn для DataTable. Это необходимо для обеспечения безопасности во время выполнения для столбца, чтобы в столбце можно было сохранить только данные указанного типа данных Таким же образом, в большинстве случаев мы предпочитаем делать сам DataSet как безопасный для типа, чтобы защитить его от несоответствия времени выполнения. Следовательно, Typed DataSets генерируют классы, которые предоставляют каждый объект в DataSet безопасным образом. Эти классы наследуются непосредственно из класса DataSet. "TypedDataSet: Почему .NET Framework принимает строку в столбце int datatable?
Но это работает, в то время как оно не должно храниться id.ToString(), а не id в столбце typeof (int) id?
using System;
using System.Data;
public class MyClass {
public static void Main() {
DataTable custTable = new DataTable("Customers");
// add columns
custTable.Columns.Add("id", typeof(int));
custTable.Columns.Add("name", typeof(string));
custTable.Columns.Add("address", typeof(string));
// set PrimaryKey
custTable.Columns[ "id" ].Unique = true;
custTable.PrimaryKey = new DataColumn[] { custTable.Columns["id"] };
// add ten rows
for(int id=1; id<=10; id++)
{
custTable.Rows.Add(
new object[] { id.ToString(), string.Format(
"customer{0}", id.ToString()), string.Format("address{0}", id.ToString()) });
}
custTable.AcceptChanges();
foreach (DataRow row in custTable.Rows) {
Console.WriteLine("{0} {1}",row["id"],row["name"]);
}
Console.ReadLine();
}
}
Это одно из больших преимуществ при использовании LINQ (особенно Linq-to-SQL): компилятор может выполнять проверку типов, кроме этого здесь ..... –
Я не могу использовать LINQ-to -SQL, поскольку я использую Oracle и .NET 2. – programmernovice