DataSet 是放在内存中的,对DataSet中数据的修改并不直接反应到数据库,要通过 DataAdapter 的 Update 方法更新回数据库;

DataSet相当你用的数据库; DataTable相当于你的表。一个 DataSet 可以包含多个 DataTable;

DataSet 由表、关系和约束的集合组成。在 ADO.NET 中,DataTable对象用于表示 DataSet 中的表。DataTable 表示一个内存内关系数据的表;

例如:

SqlDataAdapter   da=new   SqlDataAdapter(cmd);   

  DataTable   dt=new   DataTable();   

  da.Fill(dt);   

例如:

连接数据库时

 



public static DataSet Query(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}


操作数据时



protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetTopNews();
}
}

protected string GetTopNews()
{
StringBuilder sb=new StringBuilder();
string sql = "SELECT TOP 50 * from tb_content WHERE classid='90'";
DataTable dt = Helper.HelperExecuteSql.Query(sql).Tables[0];
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
sb.Append("<li>" + dt.Rows[i]["Title"] + "</li>");
}
}
return sb.ToString();
}


 

http://www.lmwlove.com/ac/ID535 如何获得DataRow在DataTable中的行号



方法一
private int FindRowIndex(DataRow dr)
{
return dr.Table.Rows.IndexOf(dr);
}
方法二:
private int FindRowIndex(DataRow dr)
{
for(int i=0;i<DataTable.Rows.Count;i++)
{
if(DataTable.Rows[i]["主键列"].ToString()=="我们要查找的值")
{
return i;
}
}
return 0;
}