标签: datatable

从C#datatable创建SQL Server表

我有一个DataTable,我手动创建并使用C#加载数据.

在SQL Server 2005中创建使用DataTable中的列和数据的表的最有效方法是什么?

c# sql-server datatable ado.net

38
推荐指数
5
解决办法
8万
查看次数

在ForEach中安全删除DataRow

我不明白为什么这段代码不起作用.

foreach (DataRow dataRow in dataTable.Rows)
{
    if (true)
    {
        dataRow.Delete();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# collections datatable ado.net datarow

38
推荐指数
5
解决办法
6万
查看次数

将新行添加到datatable的顶部

当我们使用datatable.newrow命令时,会在行的底部添加一个新的空行.但是我希望newrow添加到数据表的顶部.我该怎么做?

asp.net datatable datarow

37
推荐指数
2
解决办法
6万
查看次数

C#DBNull和可空类型 - 最清晰的转换形式

我有一个DataTable,它有许多列.其中一些列可以为空.

DataTable dt;  // Value set. 
DataRow dr;  // Value set. 

// dr["A"] is populated from T-SQL column defined as: int NULL 
Run Code Online (Sandbox Code Playgroud)

那么,什么是从DataRow中的值转换为可空变量的最干净形式.

理想情况下,我可以做类似的事情:

int? a = dr["A"] as int?; 
Run Code Online (Sandbox Code Playgroud)

编辑:原来你可以这样做,副作用是如果你的Schema类型没有整数,那么这总是会返回null.Ruben使用的答案dr.Field<int?>("A")确保类型不匹配不会无声地失败.当然,这将通过彻底的单元测试来获得.

相反,我通常会输入以下内容:

int? a = dr["A"] != DBNull.Value ? (int)dr["A"] : 0; 
Run Code Online (Sandbox Code Playgroud)

这是一堆更多的击键,但更重要的是,有更多的空间让某人用错误的击键来填充内容.是的,单元测试会选择它,但我宁愿完全停止它.

对于这种情况,什么是最干净,最不容易出错的模式.

c# datatable types nullable

37
推荐指数
2
解决办法
4万
查看次数

DataTable,如何有条件地删除行

我参与了一个C#学习过程,到目前为止进展顺利.然而,我刚刚打了我的第一个"说什么?" 时刻.

DataTable提供对其Rows集合的随机行访问,不仅通过典型的集合行为,还通过DataTable.Select.但是,我似乎无法将此功能与DataRow.Delete联系起来.到目前为止,这是我需要做的,以便有条件地从表中删除一行或多行.

int max = someDataTable.Rows.Count - 1;
for(int i = max; i >= 0; --i)
{
    if((int)someDataTable.Rows[i].ItemArray[0] == someValue)
    {
        someDataTable.Rows[i].BeginEdit();
        someDataTable.Rows[i].Delete();
    }
    else
        break;
}
someDataTable.AcceptChanges();
Run Code Online (Sandbox Code Playgroud)

但我对这段代码不满意.我都不相信.我肯定错过了什么.如果我需要有条件地删除一行或多行,我真的被迫按顺序点击Rows集合吗?

(不介意反转.我正在从数据表的末尾删除.所以没关系)

c# datatable delete-row

36
推荐指数
3
解决办法
14万
查看次数

如何在PrimeFaces 3.0中的ap:dataTable中设置ap:列的宽度?

我正在使用PrimeFaces 3.0-M3,我有<p:dataTable>两列.我希望第一列固定在20px的宽度.另一列可以使用留下的任何空间.

以下是我目前获得的截图:

截图1

截图2

第一个<p:column>似乎忽略了style应该限制​​宽度的设置.它的尺寸太大,不适合小的彩色方块,它是其中唯一的内容,然后另一列被推得太远.

这里有更多我的Facelet代码:

<p:dataTable
        id="dataTableExpressions"
        value="#{catconBean.userDefinedExpressionDataModel}"
        var="currentRow"
        emptyMessage="!! EMPTY TABLE MESSAGE !!"
        selection="#{catconBean.userDefinedExpressionToEdit}"
        selectionMode="single">
    <p:ajax 
            event="rowSelect" 
            listener="#{catconBean.onUserDefinedExpressionRowSelect}"
            update=":toolbarForm:catconToolbar" />
    <p:ajax 
            event="rowUnselect" 
            listener="#{catconBean.onUserDefinedExpressionRowUnselect}"
            update=":toolbarForm:catconToolbar" />

    <p:column id="paletteColor" style="width:20px;">
        <h:panelGroup 
                layout="block"
                rendered="#{not empty currentRow.paletteColor}"
                style="width:16px;height:16px;border:thin;border-style:solid;border-color:black;background-color:##{currentRow.paletteColor.RGB};" />
        <h:panelGroup 
                layout="block"
                rendered="#{empty currentRow.paletteColor}"
                style="width:16px;height:16px;border:thin;border-style:dashed;border-color:red;background-color:white;text-align:center;">
            <h:outputText value="?" style="color:red;font-weight:bold;" />
        </h:panelGroup>
    </p:column>

    <p:column id="name">
        <f:facet name="header">
            <h:outputText value="#{bundle.catcon_label_CategoryName}" />
        </f:facet>
        <h:outputText 
            value="#{currentRow.name}"
            style="#{not currentRow.definitionComplete ? 'color:red;' : ''}" />
    </p:column>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我如何修改我的Facelet代码,使第一列的固定宽度为20px?

css datatable jsf primefaces jsf-2

36
推荐指数
3
解决办法
9万
查看次数

如何将新的DataRow添加到DataTable中?

我有一个DataGridView绑定到DataTable(DataTable绑定到数据库).我需要一个补充DataRowDataTable.我正在尝试使用以下代码:

dataGridViewPersons.BindingContext[table].EndCurrentEdit();
DataRow row = table.NewRow();

for (int i = 0; i < 28; i++)
{
    row[i] = i.ToString();
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用,DataGridView从未添加过新的行.请告诉我,如何修复我的代码?

先感谢您.

c# datatable datagridview datarow

36
推荐指数
3
解决办法
19万
查看次数

DataTable不支持Xml的架构推断.

<?xml version="1.0" encoding="utf-8"?>
<PHP_Adapter>
  <Adapter>
    <ID>11</ID>
    <Provider>22</Provider>
    <Connectstring>33</Connectstring>
  </Adapter>
</PHP_Adapter>
Run Code Online (Sandbox Code Playgroud)

这个我的Xml文件有什么不对?

    bool CheckAdapterExist(string aid)
    {
        DataTable dt = new DataTable();
        dt.ReadXml(axml);
        MessageBox.Show(dt.Rows[0]["ID"].ToString());

        return true;
    }
Run Code Online (Sandbox Code Playgroud)

c# xml datatable

35
推荐指数
3
解决办法
4万
查看次数

如何从DataTable获取一个列值的列表?

我有DataTable.

DataTable dt = new DataTable();

dt.Columns.Add(new DataColumn("id", Type.GetType("System.Int32")));
dt.Columns.Add(new DataColumn("name", Type.GetType("System.String")));
// more columns here
Run Code Online (Sandbox Code Playgroud)

我需要"id"值列表.

我可以在没有循环遍历DataTable中的所有行且没有Linq的情况下执行此操作吗?

编辑:

经过与Sergei的小讨论后,我决定使用循环.

c# datatable c#-2.0

35
推荐指数
1
解决办法
7万
查看次数

如何更改数据表中的每页结果值

Datatables可以选择每页显示的记录数.默认值从10,25,50和100开始.如何将其更改为从5而不是10开始?10条记录有点过多,在我目前的设计中占用了大量空间.感谢名单!

http://datatables.net/

javascript datatable

34
推荐指数
3
解决办法
7万
查看次数