dataset資料庫
dataset只是一系列datatable的集合,裡面存放著表
可通過表名訪問dataset里的表
不太明白你的意思,大概猜測你想問的是你在資料庫中取出來了一些數據,然後你想知道取出來的是哪些嗎?
如果是這樣的話很簡單
你循環遍歷一下該表輸出來看一下就可以了
不過在高級語言例如C#裡面,如果你是VS開發環境的話都有可視化窗體,你直接打開看一下裡面有些什麼就得了
2. 如何將DataSet對象存儲到資料庫中
將DataSet數據集寫入資料庫: string strConnect = Provider=sqlOLEDB.1;Password=1234;Persist Security Info=True; + User ID=username;Initial Catalog=MyTempDb;Data Source=localhost; OleDbConnection dbConn = new OleDbConnection; dbConn.ConnectionString = strConnect;try{StringBuilder strXml = new StringBuilder(); StringWriter strWriter = new StringWriter( strXml ); XmlTextWriter writer = new XmlTextWriter(strWriter); writer.WriteStartDocument(); m_dsDataSet.WriteXml(writer); string strSQL = INSERT INTO temp(Temp_date,Temp_data) VALUES(GETDATE(),?); OleDbCommand aCommand = new OleDbCommand( strSQL , dbConn ); aCommand.Parameters.Add(Temp_data, OleDbType.VarChar).Value = strXml.ToString(); aCommand.Connection.Open(); aCommand.ExecuteNonQuery();}catch ( OleDbException e ){Debug.WriteLine(發生異常: + e.ToString());}從資料庫中讀出DataSet數據集: // 這里省略千篇一律的資料庫的Query操作 OleDbDataReader aReader = aCommand.ExecuteReader( ); if (aReader.Read() ){StringBuilder strXml = new StringBuilder( aReader[temp_data].ToString() ); StringReader strReader = new StringReader( strXml.ToString() ); XmlTextReader reader = new XmlTextReader(strReader);try{m_dsDataSet.ReadXml(reader); aReader.Close( );}catch( OleDbException e ){Debug.WriteLine(發生異常: + e.ToString());}}注意以上例子所引用的變數m_dsDataSet的原始定義為DataSet m_dsDataSet,在這里是一個作者自定義包含有兩個表和記錄的DataSet實例,其中的記錄來源於搜索引擎分析出的每條記錄。
3. 如何使用DataSet,在資料庫中增加、修改、刪除一個數
我們據。首先我們需要打開一個聯結,我們的資料庫還是用上一節的吧:)string MyConnString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;";string strComm = "select * from UserList";ADOConnection MyConnection = new ADOConnection(MyConnString);ADODataSetCommand MyComm = new ADODataSetCommand(strComm,MyConnection);這里我們為了講解方便,只在DataSet存入一個表的內容:DataSet MyDataSet = new DataSet();MyComm.FillDataSet(MyDataSet,"UserList");此時我們就獲得了一個擁有UserList表數據的DataSet。在講解DataSet之前,我們還需要了解DataSet的結構下面是DataSet的結構樹DataSet DataTables RowsColumns其它由於我們研究的是DataTable,其它的我們暫時不管他們。一個DataSet中包含多個DataTable,一個DataTable又包含有多個Row,這就是我們操作DataSet的基礎啦:)添加數據添加一數據,從上面的列表中我們可以看出,其實就是添加一行Row,這里我們也來演示一下如何添加一行數據,我們程序一切以DataSet為頂點,呵呵,如果TablesCollection,RowsCollection下去的話,還有一些煩人的dt.AcceptChanges這些方法的調用,很煩人,還是一次搞定吧。DataRow dr=MyDataSet.Tables["UserList"].NewRow();dr["UserName"] = "周訊";dr["ReMark"] = "100";dr["Comment"] = "漂亮MM";MyDataSet.Tables.Rows.Add(dr);第一行,我們建立一個新的數據行,它用來儲存我們新加入的數據。然後我們在這個數據行中加入我們需要的數據。dr["UserName"]表明是對UserName欄位進行添加,你可以使用dr[1]來添加信息,但是這需要我們事先知道欄位在數據表的位置,而且在不知道數據表結構的情況很難知道我們添加的數據的對應情況,所以還是用欄位名為好。最後我們使用RowsCollection的Add方法,將我們新建這一行加入到數據表中。修改數據知道如何添加數據後,修改數據也是很簡單的事情了.MyDataSet.Tables["UserList"].Rows[0]["UserName"]="飛刀大哥";這樣我們就修改了第一行數據中的UserName欄位。刪除數據刪除數據,主要是使用RowsCollection提供的Delete方法,看下面的程序也是很簡單的事情啦:)MyDataSet.Tables["UserList"],Rows[0].Delete();這一行數據就已經被刪除了。恢復數據有時候我們添加/修改數據會出現錯誤,這時候,就需要恢復原來的數據。下面的程序,顯示如何判斷是否有錯誤發生:if(MyDataSet.HasErrors){MyDataSet.RejectChanges();} 首先我們檢查DataSet中是否有錯誤發生,如果有就使用RejectChanges()方法,恢復DataSet中的數據。注意這里恢復是在DataSet中所有表以及表中DataRow中的數據,也就是在此交次操作的數據全部恢復。如果我們只需要恢復部分內容,我們可以使用DataTable或DataRow的RejectChanges(),這里就不詳細講解了,使用方法和DataSet一樣,只是操作的對像不同而已。探測DataSet是否有改動我們在將DataSet送交給資料庫去保存去,我們需要看看這個DataSet是否已經被改動了。如果沒有改動,我們也就沒有必要去修改資料庫了。if(MyDataSet.HasChanges){//保存}else{//不進行任何操作}更新資料庫我們上面的操作,都只是針對DataSet的,沒有操作資料庫,但是我們的目的還是要將數據保存到數據中去,所以我們這里就需要調用DataSetCommand的Update方法。下面的程序顯示如何將DataSet的數據交給資料庫。MyComm.Update(MyDataSet);很簡單的一句,呵呵。這里要注意,如果一個DataSet中包含有多個表,而我們只更新一個,那我們就必須寫明更新的數據表名:MyComm.Update(MyDataSet,"UserList");當Update方法被調用後,DataSetCommand會將資料庫中的數據與DataSet中的數據相比較,對不相同的地方進行更新。對於DataSet的操作,我們這里只講這么多,其實DataSet的方法和屬性有很多,功能也很全,我想現在這里的所講的功能,對一般的操作已經足夠了。
4. dataset 存入資料庫
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = GetDataSetByXml(Server.MapPath("~/file1.xml"));
DataTable dt = new DataTable();
dt.PrimaryKey = new DataColumn[] { dt.Columns["ID"] };
dt.Columns.Add("ID",typeof(Int32));
dt.Columns.Add("UserName",typeof(string));
dt.Columns.Add("UserPwd", typeof(string));
dt = ds.Tables[0];
Update(dt);
}
public static DataSet GetDataSetByXml(string strXmlPath)
{
try
{
DataSet ds = new DataSet();
//讀取XML到DataSet
ds.ReadXml(strXmlPath);
if (ds.Tables.Count > 0)
{
return ds;
}
return null;
}
catch (Exception)
{
return null;
}
}
public void Update(DataTable dt)
{
SqlConnection conn = new SqlConnection(Common.SqlHelper.);
SqlDataAdapter adapter = new SqlDataAdapter("select * from tb_test",conn);
SqlCommandBuilder objCommandBuilder = new SqlCommandBuilder(adapter);
DataSet ds = new DataSet();
adapter.Fill(ds);
adapter.Update(dt);
conn.Dispose();
}
5. carsim中database和dataset的區別
database是資料庫,有點像別的軟體里的library,或者是初建項目project,軟體打開就要選擇 進入或者新建。
dataset只是數據集,小的數據集合。就像不同車輛模型或是其他調參。
你可以在你打開的database(資料庫)下,對比多個case(右下角可以加別的dataset)同時run,作對比。
6. dataset中的數據如何插入資料庫中
復雜的方法是遍歷行和列,然後創建相應的表,再插入值。
簡單的方法,假定你最終目的只是存儲和獲取dataset,不需要在資料庫里使用其具體列,可以先用dataset.writexml方法保存成文本,然後把文本的內容保存到資料庫。
7. Dataset更新資料庫,該怎麼處理
可以使用 TableAdapter.Update 方法更新(編輯)資料庫中的記錄。 TableAdapter.Update 方法根據傳入的參數提供了若干次執行不同操作的重載。 了解調用這些不同方法簽名的結果非常重要。 說明 如果您的應用程序不使用 TableAdapter,您就可以使用命令對象更新資料庫中的記錄(例如, ExecuteNonQuery)。 有關使用命令對象更新數據的更多信息,請參見下面的「使用命令對象更新記錄」。 下表描述了各種 TableAdapter.Update 方法的行為: 方法 說明TableAdapter.Update(DataTable) 嘗試將 DataTable 中的所有更改保存到資料庫中。 (這包括從表中移除所有刪除的行、將插入的行添加到表中、更新表中已更改的所有行。) TableAdapter.Update(DataSet) 雖然該參數帶有一個數據集,但 TableAdapter 仍嘗試將 TableAdapter 的關聯 DataTable 中的所有更改保存到資料庫中。 (這包括從表中移除所有刪除的行、將插入的行添加到表中、更新表中已更改的所有行。) 說明 TableAdapter 的關聯 DataTable 是最初配置 TableAdapter 時創建的 DataTable。 TableAdapter.Update(DataRow) 嘗試將指示 DataRow 中的更改保存到資料庫中。 TableAdapter.Update(DataRows()) 嘗試將 DataRow 數組中任意行中的更改保存到資料庫中。 TableAdapter.Update("new column values", "original column values") 嘗試保存由原始列值標識的單行中的更改。 通常,當應用程序使用數據集以獨占方式存儲數據時,您使用的是帶有 DataSet、 DataTable 或 DataRow 的TableAdapter.Update 方法。 通常,當應用程序使用對象存儲數據
8. 如何使用DataSet修改資料庫
使用 DataAdapter 更新數據源
需要注意:
a)如果 SelectCommand 返回 OUTER JOIN 的結果,則 DataAdapter 不會為生成的 DataTable 設置 PrimaryKey 值。您必須自己定義PrimaryKey 以確保正確解析重復行.
b)如果對 DataSet、DataTable 或 DataRow 調用 AcceptChanges,則將使 DataRow 的所有 Original 值都將被重寫為該 DataRow 的 Current 值。如果已修改將該行標識為唯一行的欄位值,那麼當調用 AcceptChanges 後,Original 值將不再匹配數據源中的值。
看看下面例子:
// Assumes connection is a valid SqlConnection.
SqlDataAdapter dataAdpater = new SqlDataAdapter(
"SELECT CategoryID, CategoryName FROM Categories", connection);
dataAdpater.UpdateCommand = new SqlCommand(
"UPDATE Categories SET CategoryName = @CategoryName " +
"WHERE CategoryID = @CategoryID" , connection);
dataAdpater.UpdateCommand.Parameters.Add(
"@CategoryName", SqlDbType.NVarChar, 15, "CategoryName");
SqlParameter parameter = dataAdpater.UpdateCommand.Parameters.Add(
"@CategoryID", SqlDbType.Int);
parameter.SourceColumn = "CategoryID";
parameter.SourceVersion = DataRowVersion.Original;
DataSet dataSet = new DataSet();
dataAdpater.Fill(dataSet, "Categories");
DataRow row = dataSet.Tables["Categories"].Rows[0];
row ["CategoryName"] = "New Category";
dataAdpater.Update(dataSet, "Categories");
插入、更新和刪除的排序
在許多情況下,以何種順序向數據源發送通過 DataSet 作出的更改是相當重要的。
例如,如果已更新現有行的主鍵值並且添加了具有新主鍵值的新行,則務必要在處理插入之前處理更新。
可以使用 DataTable 的 Select 方法來返回僅引用具有特定 RowState 的 DataRow 數組。然後可以將返回的 DataRow 數組傳遞到 DataAdapter 的 Update 方法來處理已修改的行。通過指定要更新的行的子集,可以控制處理插入、更新和刪除的順序。
示例如下:DataTable table = dataSet.Tables["Customers"];
// First process deletes.
adapter.Update(table.Select(null, null, DataViewRowState.Deleted));
// Next process updates.
adapter.Update(table.Select(null, null,
DataViewRowState.ModifiedCurrent));
// Finally, process inserts.
adapter.Update(table.Select(null, null, DataViewRowState.Added));
9. dataset是什麼意思
DataSet是ADO.NET的中心概念。可以把DataSet當成內存中的資料庫,DataSet是不依賴於資料庫的獨立數據集合。所謂獨立,就是說,即使斷開數據鏈路,或者關閉資料庫,DataSet依然是可用的,DataSet在內部是用XML來描述數據的,由於XML是一種與平台無關、與語言無關的數據描述語言,而且可以描述復雜關系的數據,比如父子關系的數據,所以DataSet實際上可以容納具有復雜關系的數據,而且不再依賴於資料庫鏈路。
詳細資料請查閱網路:http://ke..com/view/624618.htm
10. DataSet數據集的用法
使用方法
1、創建DataSet對象
DataSet ds = new DataSet();
DataSet ds = new DataSet("DataSetName");
2、用數據集填充DataSet
最常用的是DataAdapter對象的Fill()方法給他填充數據
(1)
DataSet ds = new DataSet();
SqlDataAdapter adapt = new SqlDataAdapter(sqlcmd,con)
adapt.Fill(ds,"mytest");
(2)
DataSet ds=new DataSet();
DataTable dt=new DataTable("newTable");
ds.Tables.Add(dt);
(3)
DataSet ds=new DataSet();
DataTable dt=ds.Tables.Add("newTable");
3、訪問DataSet中的表、行和列 值
(1): 訪問每個 DataTable
按表名訪問:ds.Tables["mytest"] //指定DataTable對象mytest(即訪問DataSet中名為mytest的DataTable)
按索引(索引基於0的)訪問:ds.Tables[0] //指定DataSet中的第一個DataTable
(2): 訪問DataTable中的行
ds.Tables["mytest"].Rows[n] //訪問mytest表 的第n+1行(行的索引是從0開始的)
ds.Tables[i].Rows[n] //訪問DataSet中的第i+1個DataTable 的第n+1列(列的索引是從0開始的)
(3): 訪問DataTable中的某個元素
ds.Tables["mytest"].Rows[n][m] //訪問mytest表的第n+1行第m+1列的元素
ds.Tables[i].Rows[n][m] //訪問DataSet中的第i+1個DataTable 表的第n+1行第m+1列的元素
ds.Tables["mytest"].Rows[n][name] //訪問mytest表的第n+1行name列的元素
ds.Tables[i].Rows[n][name] //訪問DataSet中的第i+1個DataTable 表的第n+1行name列的元素
(4): 取DataTable中的列名
ds.Tables["mytest"].Columns[n] //取出mytest表的n+1列列名
ds.Tables[i].Columns[n]
4、實例
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace sqlconnection1
{
class Program
{
private void SQLConnectionF(string source, string select)
{
//創建連接
SqlConnection con = new SqlConnection(source);
SqlDataAdapter adapt = new SqlDataAdapter(select,con);
try
{
con.Open();
Console.WriteLine("connection is successful!");
}
catch (Exception e)
{
Console.WriteLine("connection error is :{0}", e.ToString());
}
//創建DataSet
DataSet ds = new DataSet();
//將數據添加到DataSet中
adapt.Fill(ds,"mytest");
//取出mytest表各列名
Console.WriteLine("{0,-15} {1,-10} {2,-10}",ds.Tables["mytest"].Columns[0],
ds.Tables["mytest"].Columns[1],ds.Tables["mytest"].Columns[2]);
//輸出mytest表中第六行
DataRow row1 = ds.Tables["mytest"].Rows[5];
Console.WriteLine("{0,-15} {1,-10} {2,-10}",row1[0],row1[1],row1[2]);
//輸出mytest表中第五行的第二列的值
DataRow row2 = ds.Tables["mytest"].Rows[4];
Console.WriteLine(" {0,-25} ", row2[1]);
//下列兩種方法等效都等同於row2[1](即第五行的第二列的值)
Console.WriteLine(" {0,-25} ", ds.Tables["mytest"].Rows[4][1]);
Console.WriteLine(" {0,-25} ", ds.Tables["mytest"].Rows[4]["number"]);
//輸出DataSet中的所有數據
foreach (DataRow row in ds.Tables["mytest"].Rows)
{
Console.WriteLine("{0,-15} {1,-10} {2,-10} {3}",row["name"] ,
row["number"] , row["low"] , row["high"]);
//取第三列的值
Console.WriteLine("{0,-15} ", row[3]);
}
Console.ReadLine();
con.Close();
}
static void Main(string[] args)
{
string sou = "server=anyf\\SQLEXPRESS;" + "Initial Catalog=master;" + "UID = sa;" + "Password = dyf123";
string sel = "SELECT name,number,low,high From dbo.spt_values";
Program sqlcon = new Program();
sqlcon.SQLConnectionF(sou, sel);
}
}
}