お世話になっております
現在、VB.NETでSQLServerからの情報をdatagridviewに表示するプログラムを書いております
int型の情報を.ToString()にて文字列化しておりますがこの時、カンマ区切りにしたいのですができません
お力添えをお願いいたします
サーバからデータを持ってい来るときはSqlConnectionからdatatableに情報を貰います
次に示すコードではtempdtというdatatableに情報が入っています
この時
Dim strGaisangaku As String = String.Format(tempdt.Rows(i)("概算額"), "#,0")
で例えば、 1,000 がstrGaisangakuに入ってほしいのですが 1000 が入ります
よろしくお願いいたします
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
2023/03/04 01:15
回答3件
0
DataGridView 上に数字が表示されたときにカンマで 3 桁区切りにしたいのですよね。
であれば、DataGridView の 3 桁区切りにしたい列(DataGridViewColumn)の DefaultCellStyle プロパティに、書式情報を設定した DataGridViewCellStyle を設定します。
具体的には以下のような感じ。Form20() コンストラクタの InitializeComponent(); メソッドの下の 3 行に注目してください。コードは C# ですが読めなければ C# ⇒ VB.NET 変換サービス https://converter.telerik.com/ があるので使ってみてください。
C#
1using System; 2using System.Windows.Forms; 3 4namespace WindowsFormsApp1 5{ 6 public partial class Form20 : Form 7 { 8 public Form20() 9 { 10 InitializeComponent(); 11 12 var cellStyle = new DataGridViewCellStyle(); 13 cellStyle.Format = "#,#"; 14 this.tableDataGridView.Columns["dataGridViewTextBoxColumn3"].DefaultCellStyle = cellStyle; 15 } 16 17 private void tableBindingNavigatorSaveItem_Click(object sender, EventArgs e) 18 { 19 this.Validate(); 20 this.tableBindingSource.EndEdit(); 21 this.tableAdapterManager.UpdateAll(this.databaseDataSet); 22 23 } 24 25 private void Form20_Load(object sender, EventArgs e) 26 { 27 // TODO: このコード行はデータを 'databaseDataSet.Table' テーブルに読み込みます。 28 // 必要に応じて移動、または削除をしてください。 29 this.tableTableAdapter.Fill(this.databaseDataSet.Table); 30 31 } 32 } 33}
結果は以下の画像の price 列の通り:
国によっては区切りの文字がカンマでなくピリオドだったりしますが、DataGridViewCellStyle の FormatProvider プロパティのデフォルトは CurrentUICulture なので、日本語 OS ならカンマになるはずです。
投稿2023/03/02 02:05
総合スコア17886
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
0
ベストアンサー
String.Format メソッド
こちらをご覧ください。String.Format メソッドの使い方が間違っています。
String.Formatメソッドの第一引数はStringとなります。
なのでtempdt.Rows(i)("概算額")
が自動で文字列に変換され"1000"
となります。
なので、String.Format("1000","#,0")
と解釈され、"1000"がそのまま出力される形になります。
このような型の自動変換によって問題が隠れてしまうのが嫌なのであればOption Strict On
を使うことをお勧めします。
ソースの一番上にOption Strict On
と宣言すれば今回のコードは
エラー BC30518 これらの引数で呼び出せるアクセス可能な 'Format' がないため、オーバーロードの解決に失敗しました:
'Public Shared Overloads Function Format(format As String, arg0 As Object) As String': Option Strict On では 'Integer' から 'String' への暗黙的な変換は許可されていません。
'Public Shared Overloads Function Format(format As String, ParamArray args As Object()) As String': Option Strict On では 'Integer' から 'String' への暗黙的な変換は許可されていません。
'Public Shared Overloads Function Format(format As String, ParamArray args As Object()) As String': 引数を ParamArray パラメーターに一致させることはできません。
'Public Shared Overloads Function Format(provider As IFormatProvider, format As String, ParamArray args As Object()) As String': 型 'Integer' の値を 'IFormatProvider' に変換できません。
とエラーになります。
>int型の情報を.ToString()にて文字列化しておりますがこの時、カンマ区切りにしたいのですができません
ToStringにもフォーマット指定することが可能です。
Int32.ToString メソッドをご覧ください。
投稿2023/03/02 00:57
総合スコア9641
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
0
数値を3けた区切りの文字列に変換するには?[C#、VB]:.NET TIPS - @IT
https://atmarkit.itmedia.co.jp/ait/articles/0707/19/news143.html
これをどうぞ
投稿2023/03/01 08:21
総合スコア86770
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
関連した質問
Q&A
解決済
DefaultTableModelのremoveRow()メソッドに関して
回答2
クリップ1
更新
2023/05/21
意見交換
受付中
メンバ関数の呼び出し方について
回答4
クリップ0
更新
2023/05/24
Q&A
受付中
java アルファベット順に並び替え
回答3
クリップ0
更新
2023/05/27
Q&A
受付中
「リスコフの置換原則」はインターフェースでも適用されますか?
回答2
クリップ0
更新
2023/05/23
意見交換
受付中
MySQL カラムで真偽値の扱いについて、BIT(1) か BOOLEAN か?
回答20
クリップ0
更新
2023/05/16
Q&A
受付中
【WPF】カレンダーをカスタマイズし、日付欄にコメント欄を追加したい
回答1
クリップ1
更新
2023/05/25
Q&A
解決済
関数の呼び出しについて
回答2
クリップ0
更新
2023/05/26
Q&A
解決済
円が波の動きをするようにしたい。
回答2
クリップ0
更新
2023/05/24
同じタグがついた質問を見る
SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。
Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。