C#怎么设置一个有键值对的datatable作为数据源?

本人是学java的,工作原因现在在写.net,实在是想不出来了,急
数据0 自愿退票 1 申请废票 2 非自愿退票 3 取消订单(支付后)

第1个回答  2016-05-24
没懂你的意思。
datatable是数据列表的一种,实例的时候是没有类型转换的,
里面的某一行是可以写成键值对的类型的。

做数据源一般都是绑定界面的时候才用到, 比如WPF中绑定到界面的DataGrid,
键值对也是不影响的,绑定的时候可以选择去绑定datatable中某一个列的某一个属性。追问

id type

0 自愿退票
1 申请废票
2 非自愿退票

3 取消订单(支付后)
我想把这些数据绑定到select 控件下面,list好像不可以值键值对

追答

你用的是哪一种界面技术? ASP?Winform?WPF?

追问

用的asp.net

追答

在后台CS文件里面写一个键值对

var kvpair = new KeyValuePair();
kvpair.Add(0,"自愿");
....

然后aspx中把select绑定为kvpair.value ,当提交表单的时候 ,获取select控件的选中项
获得选中的文本,然后在kvpair中,使用linq去找到你需要的id即可
kvpair.First(x=>x.value == select.value).Key; //select.value 就是控件提交的值
你就可以拿到用户选择的ID了。

本回答被提问者采纳
第2个回答  2016-05-24
datatable本身就是有 名称和值的 他是一个二维表 有表头 和纪录组成

using system.data

DataTable dt = new DataTable();//定义一个datatable
dt.Columns.Add("ID");//给datatable增加列(表头)
dt.Columns.Add("Name");
DataRow dr = dt.NewRow();//定义一个来自dt 的datarow(表示datatable的一行记录)
dr["ID"] = "0";//赋值
dr["Name"] = "自愿退票";
dt.Rows.Add(dr);//将本条记录添加到dt
DataRow dr1 = dt.NewRow();//定义一个来自dt 的datarow
dr1["ID"] = "1";//赋值
dr1["Name"] = "申请作废";
dt.Rows.Add(dr1);//将本条记录添加到dt

绑定数据
select.DataSource = arr
select.DataTextField = "ID"
select.DataValueField = "Name"
select.DataBind()追问

不好意思啊大神,之前没有看到你的回答。你的答案正是 我想要的

第3个回答  2016-05-24
DataColumn[] myPrimaryKey = new DataColumn[1];
myPrimaryKey[0] = mydatatable.Columns["ID"];
mydatatable.PrimaryKey = myPrimaryKey;

C#中如何将DataTable保存到数据库?
public void InsertDatatable(Datatable datatableA){ SqlConnection destinationConnection = new SqlConnection(connectionString) \/\/创建一个数据库连接;destinationConnection.Open();SqlBulkCopy bulkCopy =new SqlBulkCopy(destinationConnection)\/\/ 实例化 sqlbulkcopy;bulkCopy.DestinationTableName ="db...

c#中datagridview绑定datatable
this.DataGridView1.Columns[0].DataPropertyName \/\/用这个属性指定每列的数据源项,也就是DataTable中的哪一列 this.DataGridView1.AutoGenerateColumns = fales;\/\/规定不自动生成列

c#DataTable 中取值
DataTable dt=一个datatable的数据源;dt.rows[rowindex 第几行]["字段名"或columnsindex第几列].toString();if(dt.rows.count==0||dt==null){ \/\/用户的处理逻辑 }

c# 中DataTable带条件的GroupBy写法怎么写?
var rows = dt.Rows.Cast<DataRow>();var resultGroupedByColumn1 = rows.GroupBy(r => r.ItemArray[0]);var resultCountOf2 = rows.Sum(row => row.ItemArray.Count(cell => (int)cell == 2));第一个查询的结果是按照列1的值进行分组;第二个查询的结果是在所有数据中统计值'2'的...

c#在内存中的 datatable中添加递增主键,怎么做?
首先查询出datatable,然后添加主键列 datatable.columns.add("id");然后再循环添加主键值。for(int i=0;i<datatable.rows.count;i++){ datatable.rows[i]["id"] = i+1 ;}

C# 如何调整DataTable的大小,有人说调整它的属性...可是它不是控件啊...
datagridview属性中有一个AutoSizeColumnsMode,将它的选项选为Fill就会自动充满整个datagridview区域,并且能随着窗口的大小而自动调整

C#点击datagridview某行就将某行显示到另一个datagridview怎么设置?
点击按钮后,遍历数据,将其放入一个datatable中。然后,将此datatable绑定到另一个datagridview即可。这样,该datatable将保持状态,每次点击都会累加到其中。另一种方法是在第一个gridview中添加复选框。选择要添加到另一个gridview的行后,点击按钮遍历gridview,将被复选框选中的行的数据一起添加到data...

C# DataGrid打印数据源问题,已赋值的Datatable总是为空
如果是看一下你第一段代码里的这个DataGridSelect对象出来之后是不是空了。。。--- 你做了这句话后DataTable dt = new DataTable();dt就没有设过值,当然是null啦,\/\/你的表(TumpTable)DataGridSelect.DataSource = TumpTable.DefaultView 是不是这样呢???

C# DataTable表内数据计算问题!!紧急求助!!
Post = n.Key.t3, Count = n.Count() }; int weight1 = query.Count(p => p.Count == 2);weight1算法如上:weight2实在没看懂你描述的什么意思;

C# datatable的信息怎么添加到数据库的表中
对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。” }上面的dt变量就是你的表,需要给它指定一个TableName名字。连接字符串需要改成你数据库的,在服务器资源管理器>数据连接>属性页面>连接字符串 (鼠标选中然后按Ctrl+C复制)如满意,请采纳,谢谢。

相似回答