- Pakkun
- 会議室デビュー日: 2005/10/05
- 投稿数: 5
|
投稿日時: 2005-10-05 23:13
VisualC#でSQLServerからデータを取得して
DataGridに表示しようとしています。
ソースをmdbで試したときはうまくいったのですが、
SQLServerにしたところ、データの1レコード目が取得されず、
2レコード目が2つ取得されます。
1〜10までの数字が入ったフィールドがあったとすると、
普通に取得すると2,2,3,4,5・・・になり、
Select文をいじって降順にしてみると、
9,9,8,7,6・・・となります。
データアダプタを右クリックしてデータを取得してみると、
正しく取得できますが、Fillでデータを取得しDataGridに
表示しようとしたときだけ上のような現象が起こります。
もし原因がわかるようなら教えてください。
|
- なおこ(・∀・)
- 大ベテラン
- 会議室デビュー日: 2004/04/08
- 投稿数: 174
- お住まい・勤務地: 東京都
|
投稿日時: 2005-10-05 23:17
お世話になります。
DataAdapterのSelectCommandのCommandTextの中身は
問題なしですか?
|
- Pakkun
- 会議室デビュー日: 2005/10/05
- 投稿数: 5
|
投稿日時: 2005-10-06 00:08
引用: |
|
なおこ(・∀・)さんの書き込み (2005-10-05 23:17) より:
お世話になります。
DataAdapterのSelectCommandのCommandTextの中身は
問題なしですか?
|
はい。というか、すべてのフィールドを表示しているだけです。
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2005-10-06 09:05
こんにちは、じゃんぬ です。
引用: |
|
Pakkunさんの書き込み (2005-10-06 00:08) より:
はい。というか、すべてのフィールドを表示しているだけです。
|
SELECT * FROM HOGE ということですか。
しかしながら、ソースを提示して頂けないと進展がないですよ。
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- Pakkun
- 会議室デビュー日: 2005/10/05
- 投稿数: 5
|
投稿日時: 2005-10-06 12:31
引用: |
|
SELECT * FROM HOGE ということですか。
しかしながら、ソースを提示して頂けないと進展がないですよ。
|
大事なことを失念しておりました。すいません。
基本的にVC#のウィザードで作成したので
コードは画面上のボタンに書いた
dataSet41.Clear();
sqlDataAdapter1.Fill(dataSet41,"Customers");
これくらいです。
(Northwood DBに接続してみました。)
Selectコマンドについてもデフォルトのままで
SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region,PostalCode, Country, Phone, Fax FROM Customers
です。
別のSQLServerに接続してみましたが同じ結果でした。
mdbではうまくいったので不思議です。
|
- なおこ(・∀・)
- 大ベテラン
- 会議室デビュー日: 2004/04/08
- 投稿数: 174
- お住まい・勤務地: 東京都
|
投稿日時: 2005-10-06 12:33
引用: |
|
Pakkunさんの書き込み (2005-10-06 12:31) より:
基本的にVC#のウィザードで作成したので
コードは画面上のボタンに書いた
dataSet41.Clear();
sqlDataAdapter1.Fill(dataSet41,"Customers");
これくらいです。
(Northwood DBに接続してみました。)
Selectコマンドについてもデフォルトのままで
SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region,PostalCode, Country, Phone, Fax FROM Customers
です。
別のSQLServerに接続してみましたが同じ結果でした。
mdbではうまくいったので不思議です。
|
DataGridにバインドする時のソースも見せていただけますか?
|
- Pakkun
- 会議室デビュー日: 2005/10/05
- 投稿数: 5
|
投稿日時: 2005-10-06 12:46
引用: |
|
なおこ(・∀・)さんの書き込み (2005-10-06 12:33) より:
DataGridにバインドする時のソースも見せていただけますか?
|
プロパティとウィザードだけでやってますので、
バインドもプロパティで
DataMember Customers
DataSource dataSet41
と、設定しただけです。
datasetのプロパティでEnforceConstraintsをFalse
にしています。制約を適用すると、重複してるといって
エラーになります。
dataAdapterのデータのプレビューではちゃんと表示出来る
ことから、datasetが怪しいとは思うのですが、
本をみながらこれから勉強しようと思ってるところなので
困り果ててます。
わけのわからない質問ではありますが、もしなにか
気がつくようなことがあればよろしくお願いします。
|
- なおこ(・∀・)
- 大ベテラン
- 会議室デビュー日: 2004/04/08
- 投稿数: 174
- お住まい・勤務地: 東京都
|
投稿日時: 2005-10-06 14:21
お世話になります。
引用: |
|
Pakkunさんの書き込み (2005-10-06 12:46) より:
プロパティとウィザードだけでやってますので、
バインドもプロパティで
DataMember Customers
DataSource dataSet41
と、設定しただけです。
datasetのプロパティでEnforceConstraintsをFalse
にしています。制約を適用すると、重複してるといって
エラーになります。
dataAdapterのデータのプレビューではちゃんと表示出来る
ことから、datasetが怪しいとは思うのですが、
本をみながらこれから勉強しようと思ってるところなので
困り果ててます。
わけのわからない質問ではありますが、もしなにか
気がつくようなことがあればよろしくお願いします。
|
私もプロパティとウィザードでやってみましたが、特に問題なかったです。
試しに、以下のコードをDataGridだけ貼り付けたForm上で動くか
実験してみていただけますか?
コード: |
|
private void Form1_Load(object sender, System.EventArgs e)
{
String connectionString = "NorthWindへの接続文字列";
System.Data.SqlClient.SqlConnection sqlConn;
sqlConn = new System.Data.SqlClient.SqlConnection(connectionString);
System.Data.SqlClient.SqlDataAdapter da;
System.Data.DataSet ds;
sqlConn.Open();
da = new System.Data.SqlClient.SqlDataAdapter("SELECT * FROM Customers", sqlConn);
ds = new DataSet();
da.Fill(ds, "Customers");
this.dataGrid1.DataSource = ds;
this.dataGrid1.DataMember = "Customers";
sqlConn.Close();
}
|
|