C#DataTable的用法?

public DataTable GetDataTable(string strSql)
{
try
{
DBOpen();
DataSet dataSet = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(strSql, _Connection);
adapter.Fill(dataSet);
return dataSet.Tables[0]; //这里不懂 什么意思?这个返回的是什么,谁能详细讲讲 Tables[0]这个[0]是什么?
}
catch
{
return null;
}

} 还有这样一段 DataTable table = db.GetDataTable(strSql); //上面那个写好的类
string rid = table.Rows[0]["rid"].ToString();// table.Rows[0]["rid"] 这个怎么用的[0]["rid"] 分别代表什么啊?谢谢

九州编程
浏览 1761回答 3
3回答

qq_遁去的一_1

一、DataTable简介(1)构造函数DataTable() 不带参数初始化DataTable 类的新实例。DataTable(string tableName) 用指定的表名初始化DataTable 类的新实例。DataTable(string tableName, string tableNamespace) 用指定的表名和命名空间初始化DataTable类的新实例。(2) 常用属性CaseSensitive 指示表中的字符串比较是否区分大小写。ChildRelations 获取此DataTable 的子关系的集合。Columns 获取属于该表的列的集合。Constraints 获取由该表维护的约束的集合。DataSet 获取此表所属的DataSet。DataSet相关信息,可见我以前的一篇文章《数据访问(2)-DataSet》DefaultView 获取可能包括筛选视图或游标位置的表的自定义视图。HasErrors 获取一个值,该值指示该表所属的DataSet 的任何表的任何行中是否有错误。MinimumCapacity 获取或设置该表最初的起始大小。该表中行的最初起始大小。默认值为 50。Rows 获取属于该表的行的集合。TableName 获取或设置DataTable 的名称。(3)常用方法AcceptChanges() 提交自上次调用AcceptChanges() 以来对该表进行的所有更改。BeginInit() 开始初始化在窗体上使用或由另一个组件使用的DataTable。初始化发生在运行时。Clear() 清除所有数据的DataTable。Clone() 克隆DataTable 的结构,包括所有DataTable 架构和约束。EndInit() 结束在窗体上使用或由另一个组件使用的DataTable 的初始化。初始化发生在运行时。ImportRow(DataRow row) 将DataRow 复制到DataTable 中,保留任何属性设置以及初始值和当前值。Merge(DataTable table) 将指定的DataTable 与当前的DataTable 合并。NewRow() 创建与该表具有相同架构的新DataRow。二、DataTable使用技巧(1)Create a DataTableDataTable dt = new DataTable("Table_AX");(2)Add columns for DataTable//Method 1dt.Columns.Add("column0", System.Type.GetType("System.String"));//Method 2DataColumn dc = new DataColumn("column1", System.Type.GetType("System.Boolean"));dt.Columns.Add(dc);(3)Add rows for DataTable//Initialize the rowDataRow dr = dt.NewRow();dr["column0"] = "AX";dr["column1"] = true;dt.Rows.Add(dr);//Doesn't initialize the rowDataRow dr1 = dt.NewRow();dt.Rows.Add(dr1);(4)Select row//Search the second row 如果没有赋值,则用is null来selectDataRow[] drs = dt.Select("column1 is null");DataRow[] drss = dt.Select("column0 = 'AX'");(5)Copy DataTable include dataDataTable dtNew = dt.Copy();(6)Copy DataTable only schemeDataTable dtOnlyScheme = dt.Clone();(7)Operate one row//对dt的操作//Method 1DataRow drOperate = dt.Rows[0];drOperate["column0"] = "AXzhz";drOperate["column1"] = false;//Method 2drOperate[0] = "AXzhz";drOperate[1] = false;//Method 3dt.Rows[0]["column0"] = "AXzhz";dt.Rows[0]["column1"] = false;//Method 4dt.Rows[0][0] = "AXzhz";dt.Rows[0][1] = false;(8)Evaluate another DataTable's row to current DatatabledtOnlyScheme.Rows.Add(dt.Rows[0].ItemArray);(9)Convert to stringSystem.IO.StringWriter sw = new System.IO.StringWriter();System.Xml.XmlTextWriter xw = new System.Xml.XmlTextWriter(sw);dt.WriteXml(xw);string s = sw.ToString();(10)Filter DataTabledt.DefaultView.RowFilter = "column1 <> true";dt.DefaultView.RowFilter = "column1 = true";(11)Sort rowdt.DefaultView.Sort = "ID ,Name ASC";dt=dt.DefaultView.ToTable();(12)Bind DataTable//绑定的其实是DefaultViewgvTestDataTable.DataSource = dt;gvTestDataTable.DataBind();(13)judge the DataTable’s Column name is a string//判断一个字符串是否为DataTable的列名dtInfo.Columns.Contains("AX");(14)DataTable convert to XML and XML convert to DataTableprotected void Page_Load(object sender, EventArgs e){DataTable dt_AX = new DataTable();//dt_AX.Columns.Add("Sex", typeof(System.Boolean));//DataRow dr = dt_AX.NewRow();//dr["Sex"] = true;//dt_AX.Rows.Add(dr);string xml=ConvertBetweenDataTableAndXML_AX(dt_AX);DataTable dt = ConvertBetweenDataTableAndXML_AX(xml);}public string ConvertBetweenDataTableAndXML_AX(DataTable dtNeedCoveret){System.IO.TextWriter tw = new System.IO.StringWriter();//if TableName is empty, WriteXml() will throw Exception.dtNeedCoveret.TableName=dtNeedCoveret.TableName.Length==0?"Table_AX":dtNeedCoveret.TableName;dtNeedCoveret.WriteXml(tw);dtNeedCoveret.WriteXmlSchema(tw);return tw.ToString();}public DataTable ConvertBetweenDataTableAndXML_AX(string xml){System.IO.TextReader trDataTable = new System.IO.StringReader(xml.Substring(0, xml.IndexOf("<?xml")));System.IO.TextReader trSchema = new System.IO.StringReader(xml.Substring(xml.IndexOf("<?xml")));DataTable dtReturn = new DataTable();dtReturn.ReadXmlSchema(trSchema);dtReturn.ReadXml(trDataTable);return dtReturn;}

隔江千里

dataset是一个数据集,它包含很多数据表datatable填充到数据集的时候默认填充到第一个表就是dataset[0],它实际上就是一个datatable你可以直接这样写DataTable dt= new DataTable ();SqlDataAdapter adapter = new SqlDataAdapter(strSql, _Connection);adapter.Fill(dt);return dt; //数据适配器自动开启和关闭连接可以省略开启关闭 table.Rows[0]["rid"]就是表的第一行的rid这一列第一个[]代表行第二个表示列
打开App,查看更多内容
随时随地看视频慕课网APP