to :einsteincao(至尊宝)是我没说清楚,我知道DataGrid的数据源是DataTable但我想问的是,这个DataTable是放在哪里的,在我的数据库结构里并没有这个表。 -------------------------------------------------------------------------------- 你可以定义一个啊。
对于行的添加给你看个msdn里的例子 private void MakeDataTableAndDisplay(){ // Create new DataTable and DataSource objects. DataTable myDataTable = new DataTable(); // Declare DataColumn and DataRow variables. DataColumn myColumn; DataRow myRow; DataView myDataView; // Create new DataColumn, set DataType, ColumnName and add to DataTable. myColumn = new DataColumn(); myColumn.DataType = System.Type.GetType("System.Int32"); myColumn.ColumnName = "id"; myDataTable.Columns.Add(myColumn); // Create second column. myColumn = new DataColumn(); myColumn.DataType = Type.GetType("System.String"); myColumn.ColumnName = "item"; myDataTable.Columns.Add(myColumn); // Create new DataRow objects and add to DataTable. for(int i = 0; i < 10; i++){ myRow = myDataTable.NewRow(); myRow["id"] = i; myRow["item"] = "item " + i.ToString(); myDataTable.Rows.Add(myRow); } // Create a DataView using the DataTable. myDataView = new DataView(myDataTable); // Set a DataGrid control's DataSource to the DataView. dataGrid1.DataSource = myDataView; }
是textbox还是datagrid?那样子的显示格式又是怎么做出来的?
DataGrid来的,,其实你可以参考sqlserver格式就可以自己写一个,不时很复杂的
strSql = "select * from table1 where 1=1 and " //注意 这里非常重要!!然后就是通过循环遍历整个dataGrid.rows[i].cols[j].ToString();将ToString的值加给strSql
ADO.NET 太多思想都是出自SQL了例如TableRelation?(记不清是不是这个了,表示两个DataTable的关系)
你可以定义一个dataset,添加一个datatable,将datatable和datagrid关连。
然后修改datatable就可以了。
生成sql语句时根据datatable中的数据生成就可以。
我感觉这样比较方便。
this.dataGrid1.DataSource=myDataSet;
this.dataGrid1.DataMember="mytable";
--------------------------------------------------------------------------------
你可以定义一个啊。
System.Data.DataTable myTB=new DataTable();
myDS.Tables.Add(myTB);
myTB.Rows.Add(...);
private void MakeDataTableAndDisplay(){
// Create new DataTable and DataSource objects.
DataTable myDataTable = new DataTable();
// Declare DataColumn and DataRow variables.
DataColumn myColumn;
DataRow myRow;
DataView myDataView;
// Create new DataColumn, set DataType, ColumnName and add to DataTable.
myColumn = new DataColumn();
myColumn.DataType = System.Type.GetType("System.Int32");
myColumn.ColumnName = "id";
myDataTable.Columns.Add(myColumn); // Create second column.
myColumn = new DataColumn();
myColumn.DataType = Type.GetType("System.String");
myColumn.ColumnName = "item";
myDataTable.Columns.Add(myColumn); // Create new DataRow objects and add to DataTable.
for(int i = 0; i < 10; i++){
myRow = myDataTable.NewRow();
myRow["id"] = i;
myRow["item"] = "item " + i.ToString();
myDataTable.Rows.Add(myRow);
} // Create a DataView using the DataTable.
myDataView = new DataView(myDataTable);
// Set a DataGrid control's DataSource to the DataView.
dataGrid1.DataSource = myDataView;
}
看样子,是在这个界面里面,组合适当的SQL命令语句
然后再用它得到想要的记录是不是
在这个界面里,那就不是牵扯到数据库操作了,只不过是用数据对象操作
DataTable中相当于是一张内存表,它基本可以实现数据库中表的各种基本功能,它可以包含若干个DataRow与DataColumn,它们都是在你需要的时候,定义的操作的
dataset就是一个数据库,datatable就是其中的一个表,你定义了它就存在内存中,是看不到的。
datatable也算一个内存表吧
什么 自己在form生成时建好的
如果我用的dataset或是datatable是临时变量怎么办,form不可能在生成时也建好吧
里面也详细说明了 数据对象之间各种关系的建立及说明
及适配器运用的原理
to:lxrxyz(无忧十年),由于您在我前一个同样问题的帖子中有过回复,我在那里为您加50分,因为这里回复的人比较多,所以这里结账的时候就少给您点儿~:)
添加条件就AdddRow,删除条件就删除Row最后根据Rows来生成相关的查询条件语句就行了
2.应该是应用一种固有模式吧
3.可以通过一个存储过程来实现(包含所有的查询条件),只用把有的参数带入即可
4.直接传参数