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);
}
}
}