0

DGV に入力された値をリストに保存しています<T>; これらは 10 進数の値であるか、何もない (空) です。空の場合、ヘルパー関数がそれらの空の val を 0 と見なすように、それらを null として表示する必要があります。ただし、この行は次のとおりです。

rrsr.DuckbillRate = Convert.ToDecimal(GetValAtColRow(colNumber, rowNumber));

...「入力文字列が正しい形式ではありません」で失敗することがあります (失敗した場合、変換しようとしている値は string.empty です):

セルの値を取得するためのヘルパー関数を次に示します。これにより、それらを List > に保存し、List ><Tに保存されているレコードの内容からセルを復元/再入力できます。<T

private string GetValAtColRow(int colNum, int rowNum)
{
 DataGridViewRow desiredRow = dataGridViewPlatypi.Rows[rowNum];
 return (desiredRow.Cells[colNum].Value ?? 0).ToString(); 
}

private void SetValAtColRow(int colNum, int rowNum, string val)
{
 string convertedVal = val;
 // If the value is 0, I want to display an empty cell (nothing)
 if (convertedVal.Equals("0"))
 {
  convertedVal = string.Empty;
 }
 DataGridViewRow desiredRow = dataGridViewPlatypi.Rows[rowNum];
 desiredRow.Cells[colNum].Value = convertedVal;
}
4

1 に答える 1

2

構文解析はどこかで間違っています...

正しい形式ではない入力文字列エラーは通常、解析が正しく行われていない場合に発生します。

他の問題について...このようにしてみてください>>>

string a =  dataGridViewPlatypi.Rows[rowNum].Cells[colNum].Value.toString()

if(a=="")
{
.
.
//further things
}
于 2012-09-22T04:09:33.463 に答える