DataTable and DataColumn Expressions in ADO.NET - Calculated Columns

      如果我们在Create一个DataTable时需要创建这样一列,它的结果是根据一定的表达式自动生成的,那么我们可以使用DataColumn的Express性质来完成这样的任务.

     假设我们要完成下面的逻辑:

    If ColumnA - ColumnB > 100, ColumnC = “Yes“, else ColumnC = “No“

则创建DataTable的代码如下:

None.gif //  Create the DataTable
None.gif
DataTable dt  =   new  DataTable( " Expressions " );
None.gif
None.gif
//  Create ColumnA and ColumnB
None.gif
DataColumn columnA  =          new  DataColumn( " columnA " typeof ( int ));
None.gifDataColumn columnB 
=          new  DataColumn( " columnB " typeof ( int ));
None.gif
None.gif
//  Create ColumnC
None.gif
DataColumn columnC  =          new  DataColumn( " columnC " typeof ( string ),
None.gif        
" IIF(columnA - columnB > 100,'Yes','No') " );
None.gif
None.gif
//  Add Columns to DataTable
ExpandedBlockStart.gifContractedBlock.gif
dt.Columns.AddRange( new  DataColumn[]                       dot.gif { columnA, columnB, columnC } );
None.gif
None.gif
//  Add a Couple of Rows Supplying ColumnA and ColumnB Datadot.gif
ExpandedBlockStart.gifContractedBlock.gif
dt.Rows.Add( new   object []  dot.gif 20080 } );
ExpandedBlockStart.gifContractedBlock.gifdt.Rows.Add(
new   object []  dot.gif 10010 } );
None.gif


大家可以看到,这里面用到了IIF这样的函数,它的语法如下:

IIF(expr, truepart, falsepart)

expr -- 表达式

truepart -- 表达式成立时列的值

falsepart -- 表达式不成立时列的值


原文: http://davidhayden.com/blog/dave/archive/2006/07/09/DataColumnExpressions.aspx
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你的问题。对于 C# ADO.NET 的小管理窗口,一般需要实现增删改查的功能。下面是一个简单的实现过程: 1. 首先需要创建一个数据库,并创建一个表用于存储数据。可以使用 SQL Server Management Studio 进行创建。 2. 在 C# 中使用 ADO.NET 连接数据库,可以使用 SqlConnection、SqlCommand、SqlDataAdapter 等类。 3. 在窗口中添加控件,如 DataGridView、TextBox、Button 等,用于显示数据和进行增删改查操作。 4. 在窗口加载时,使用 SqlDataAdapter 填充 DataGridView 控件。代码如下: ``` SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM 表名", connectionString); DataTable table = new DataTable(); adapter.Fill(table); dataGridView1.DataSource = table; ``` 5. 在增加按钮的 Click 事件中,获取用户输入的数据,使用 SqlCommand 执行 INSERT INTO 语句插入数据。代码如下: ``` string sql = "INSERT INTO 表名 (字段1, 字段2) VALUES (@值1, @值2)"; SqlCommand cmd = new SqlCommand(sql, connection); cmd.Parameters.AddWithValue("@值1", textBox1.Text); cmd.Parameters.AddWithValue("@值2", textBox2.Text); cmd.ExecuteNonQuery(); ``` 6. 在修改按钮的 Click 事件中,获取用户输入的数据和选中的行,使用 SqlCommand 执行 UPDATE 语句更新数据。代码如下: ``` string sql = "UPDATE 表名 SET 字段1=@值1, 字段2=@值2 WHERE ID=@ID"; SqlCommand cmd = new SqlCommand(sql, connection); cmd.Parameters.AddWithValue("@值1", textBox1.Text); cmd.Parameters.AddWithValue("@值2", textBox2.Text); cmd.Parameters.AddWithValue("@ID", dataGridView1.SelectedRows[0].Cells["ID"].Value); cmd.ExecuteNonQuery(); ``` 7. 在删除按钮的 Click 事件中,获取选中的行,使用 SqlCommand 执行 DELETE FROM 语句删除数据。代码如下: ``` string sql = "DELETE FROM 表名 WHERE ID=@ID"; SqlCommand cmd = new SqlCommand(sql, connection); cmd.Parameters.AddWithValue("@ID", dataGridView1.SelectedRows[0].Cells["ID"].Value); cmd.ExecuteNonQuery(); ``` 以上就是一个简单的 C# ADO.NET 增删改查小管理窗口的实现过程。当然,还有很多需要完善的地方,比如异常处理、数据验证等。希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值