如何将数据库中的数据更改为DataGridView

时间:2011-08-11 18:26:43

标签: c# sql-server-2008

我有一个带有MASTER表的数据库。 MASTER具有数据类型为MONEY的列Salary。 现在,当我从datagridview中的数据库获取数据时,我想显示带有“Rs”的money列。附加到它。 比如,如果数据库中的薪水是100,我想将其视为Rs。我的datagridview中有100个。 填充方法只是将整个数据复制到datagridview中。 怎么办呢?

4 个答案:

答案 0 :(得分:2)

使用相关列的DefaultCellStyle属性的Format属性。您可以通过右键单击DataGridView控件,使用“编辑列”对话框以声明方式执行此操作。在您的情况下,您需要将格式属性设置为'Rs。' 0.00 即可。需要单引号才能在Rs之后转义点符号。

有关详细信息,请阅读MSDN上的Custom Numeric Format Strings主题。

答案 1 :(得分:2)

dataGridView1.CellFormatting +=
        new System.Windows.Forms.DataGridViewCellFormattingEventHandler(
        this.dataGridView1_CellFormatting);

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Salary")
    {
        if (e.Value != null)
        {
            try
            {
                e.Value = String.Format("Rs. {0:F2}", e.Value);
                e.FormattingApplied = true;
            }
            catch (FormatException)
            {
                e.FormattingApplied = false;
            }
        }
    }
}

答案 2 :(得分:1)

我不确定,但您可以使用DataGridView.OnUserAddedRow Method

修改行添加事件

这是一个简短的代码。我没有测试过,但请检查它是否适合您:

protected override void OnUserAddedRow(DataGridViewRowEventArgs e)
{
    int actualRowIndex = this.Rows.Count - 2; 
    this.Rows[actualRowIndex].Cells["Salary"].Value = "Rs." + <Your SQL Salary>;
    base.OnUserAddedRow(e);
}

您可以在此处详细了解此用法:Dynamically set DataGridViewColumn default value at runtime

答案 3 :(得分:0)

在DatabindingComplete上,您可以手动修改该列(如果您正在使用winforms)

    private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
    {
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            row.Cells["Salary"].Value = "Add your calc here";
        }
    }