C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: DataTableと環境依存文字の関係


(過去ログ 128 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■76213 / inTopicNo.1)  DataTableと環境依存文字の関係
  
□投稿者/ 苦楽朗 (1回)-(2015/06/12(Fri) 05:05:06)

分類:[.NET 全般] 

分類:[VB.net]

VS2005からVS2013へのバージョンアップを行っている途中で出てきた問題です。
(.NetFramework2.0→4.5.1)

DataTableの項目にプライマリーキーを設定して、「1」と「@」を追加したところ
「追加情報:列 'A' は一意であるように制約されています。値 '@' は既に存在します。」
というエラーになってしまいました。

-----------------------------------------------------------
Dim tb_check As New DataTable
With tb_check
.Columns.Add("A")
End With

''主キーとなる列名をセット
Dim colColumn(0) As DataColumn
colColumn(0) = tb_check.Columns("A")

''主キーにセット
tb_check.PrimaryKey = colColumn

''データセット
Dim setADDRow As DataRow
setADDRow = tb_check.NewRow
setADDRow("A") = "1"
Call tb_check.Rows.Add(setADDRow)

setADDRow = tb_check.NewRow
setADDRow("A") = "@"
Call tb_check.Rows.Add(setADDRow) ←ここでエラー

------------------------------------------------------

VS2005では起きなかったのですが、どうやら環境依存文字の@を1というように認識しているようです。
.NetFrameworkのバージョンは変えずに対応する方法がありましたら教えてください。
引用返信 編集キー/
■76215 / inTopicNo.2)  Re[1]: DataTableと環境依存文字の関係
□投稿者/ Amateur (5回)-(2015/06/12(Fri) 05:30:39)
No76213 (苦楽朗 さん) に返信

 Dim tb_check As New DataTable With {.CaseSensitive = True}

にするとどうでしょう。

引用返信 編集キー/
■76216 / inTopicNo.3)  Re[2]: DataTableと環境依存文字の関係
□投稿者/ 苦楽朗 (2回)-(2015/06/12(Fri) 06:13:57)
No76215 (Amateur さん) に返信
> ■No76213 (苦楽朗 さん) に返信
>
> Dim tb_check As New DataTable With {.CaseSensitive = True}
>
> にするとどうでしょう。

Amateurさんありがとうございます!とても助かりました。
CaseSensitive プロパティで、大文字、小文字の判断でいけるんですね。

一応解決はしたのですが、実際はデータベースからデータセットしており、プロジェクト内のいろんな場所でエラーが起こる可能性があります。
プロジェクトのプロパティ等で、一括して設定することが可能でしょうか?
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -