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