DataTable.Load()和DataTable = dataSet.Tables []之间的区别;

sub*_*bbu 4 .net c#

我怀疑我使用以下代码从SQLlite数据库获取数据并将其加载到数据表中

SQLiteConnection cnn = new SQLiteConnection("Data Source=" + path);

cnn.Open();

SQLiteCommand mycommand = new SQLiteCommand(cnn);
string sql = "select Company,Phone,Email,Address,City,State,Zip,Country,Fax,Web from RecordsTable";
mycommand.CommandText = sql;

SQLiteDataReader reader = mycommand.ExecuteReader();

dt.Load(reader);

reader.Close();

cnn.Close();
Run Code Online (Sandbox Code Playgroud)

在某些情况下,当我尝试加载它给我"无法启用约束异常"

但是,当我尝试下面给出相同的表和相同的记录集时,它的工作原理

SQLiteConnection ObjConnection = new SQLiteConnection("Data Source=" + path);

SQLiteCommand ObjCommand = new SQLiteCommand("select Company,Phone,Email,Address,City,State,Zip,Country,Fax,Web from RecordsTable", ObjConnection);
ObjCommand.CommandType = CommandType.Text;

SQLiteDataAdapter ObjDataAdapter = new SQLiteDataAdapter(ObjCommand);

DataSet dataSet = new DataSet();

ObjDataAdapter.Fill(dataSet, "RecordsTable");

dt = dataSet.Tables["RecordsTable"];
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我两者之间有什么区别

Ste*_*rns 5

Load()方法有目的地评估约束,而只是通过索引从数据集中提取DataTable不会.这是您案件中的不同之处.

请参阅:http://msdn.microsoft.com/en-us/library/hsze9wte(VS.80).aspx