質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

3回答

694閲覧

SQLサーバから引っ張ってきた整数(int)値を文字列化するときにカンマ区切りにならない

Ynn

総合スコア10

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2023/03/01 08:00

お世話になっております

現在、VB.NETでSQLServerからの情報をdatagridviewに表示するプログラムを書いております
int型の情報を.ToString()にて文字列化しておりますがこの時、カンマ区切りにしたいのですができません
お力添えをお願いいたします
サーバからデータを持ってい来るときはSqlConnectionからdatatableに情報を貰います
次に示すコードではtempdtというdatatableに情報が入っています
この時

Dim strGaisangaku As String = String.Format(tempdt.Rows(i)("概算額"), "#,0")

で例えば、 1,000 がstrGaisangakuに入ってほしいのですが 1000 が入ります
よろしくお願いいたします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2023/03/01 23:04

開発環境を質問欄を編集して追記してください。(例: Windows 10 の Visual Studio 2022 で Windows Forms アプリをターゲットフレームワーク .NET Framework 4.8 で作っています・・・とか)
退会済みユーザー

退会済みユーザー

2023/03/04 01:15

DataGridView 上に数字が表示されたときにカンマで 3 桁区切りにしたいのではなかったの?????
guest

回答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

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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

YAmaGNZ

総合スコア10251

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

数値を3けた区切りの文字列に変換するには?[C#、VB]:.NET TIPS - @IT
https://atmarkit.itmedia.co.jp/ait/articles/0707/19/news143.html

これをどうぞ

投稿2023/03/01 08:21

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問