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

时间:2010-03-31 10:00:55

标签: c# .net

我怀疑我使用以下代码从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();

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

但是当我尝试下面给出相同表格和同一组记录的代码片段时,它可以工作

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"];

任何人都可以告诉我两个

之间有什么区别

1 个答案:

答案 0 :(得分:5)

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

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