1

こんにちは、「0」ではなく「0,00」を返したいというクエリがあります。

私はこのようにそれを書き込もうとしたとき:

string sqlcom = "SELECT (ISNULL(s_prijmy, 0,00)), * FROM zajezd WHERE akce >= '" + txt_od.Text + "'AND akce <='" + txt_do.Text + "' AND rocnik='" + klientClass.Rocnik() + "'";

それは私に次の例外を与えます:

System.InvalidCastException: 指定されたキャストは無効です。System.Data.SqlClient.SqlBuffer.get_Decimal() で

どうすれば修正できますか?

事前に感謝します。

この「0,00」の将来の使用は次のようになります。

this.chart1.Series["Příjmy"].Points.AddXY(myreader.GetString(myreader.GetOrdinal("akce")), myreader.GetDecimal(34).ToString()); // the 34th column
4

6 に答える 6

3

クエリで with を変更,.ます。

ISNULL(s_prijmy, 0.00)

また、

GetDecimal(34) 

ゼロベースであるため、35番目の列を取得します...

使用する:

GetDecimal(33) 

34列目。

ここをチェック

于 2013-09-05T09:45:45.427 に答える
1

データを表示するときに、データをフォーマットできます。

そのままデータを選択

string sqlcom = "SELECT s_prijmy, .........

それから

var value = myreader.GetString(myreader.GetOrdinal("s_prijmy"));

value =  string.IsNullOrEmpty(value)?"0,00":value;

上記の値を使用できるようになりましたPoints.AddXY

于 2013-09-05T09:55:40.643 に答える
1

この方法を試してください:

string sqlcom = "SELECT cast(ISNULL(s_prijmy, 0) as decimal(8,2)), * FROM zajezd WHERE akce >= '" + txt_od.Text + "'AND akce <='" + txt_do.Text + "' AND rocnik='" + klientClass.Rocnik() + "'";
于 2013-09-05T09:46:02.267 に答える
1

クライアント側でプレゼンテーションを修正する必要があります。パブリック文字列 ToString(string format)を見てください。また、ここここ

于 2013-09-05T09:58:47.957 に答える