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