- PR -

ASP.NETからAccessへのデータ接続

1
投稿者投稿内容
1046
会議室デビュー日: 2006/01/03
投稿数: 9
投稿日時: 2006-01-03 18:26
ASP.NET(言語C#)で、AccessのデータをDataGridを使用して表示させようとしていますが、表示してくれません。データ接続の追加時の接続テストは問題ないのにです。
誰か原因がおわかりの方または、お心当たりが有る方、ご教授お願いします。
尚、mdbファイルがあるフォルダ及びmdbファイル自身には、IUSR_(コンピュータ名)の権限は与えてあります。

環境:OS→Windows2000Server SP4
    VC#2003
    Access2000

何卒宜しくお願い申し上げます。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-03 19:24
引用:

1046さんの書き込み (2006-01-03 18:26) より:

ASP.NET(言語C#)で、AccessのデータをDataGridを使用して表示させようとしていますが、表示してくれません。データ接続の追加時の接続テストは問題ないのにです。
誰か原因がおわかりの方または、お心当たりが有る方、ご教授お願いします。


情報が足らないような気がします。

まず、接続方法は何でしょうか?
OLEDB でしょうか?
周辺のコードも判らないです。

「表示してくれません」というのは例外などは発生しないということでしょうか?
それとも例外が発生するため表示できないのでしょうか?
であれば、例外の詳細を教えてください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1046
会議室デビュー日: 2006/01/03
投稿数: 9
投稿日時: 2006-01-03 20:04
じゃんぬねっと様、ご返事有難う御座います。

情報が不足していた分を追記させて頂きます。何卒宜しくお願い申し上げます。

@接続方法は、OLEDBです。
A「表示されない」の詳細ですが、例外が発生している訳ではなさそうです。
 処理内容を、ボタンクリックのイベントが発生したら、DataGridにAccessデータを
 反映させようとしているのですが、ボタンをクリックしても無反応状態です。
 (イベント自体は、機能しているみたいですが・・・)
Bコードは、以下の通りです。
 using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace WebApplication41
{
/// <summary>
/// WebForm1 の概要の説明です。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Data.OleDb.OleDbConnection testCnt;
protected System.Data.OleDb.OleDbCommand oleDbSelectCommand1;
protected System.Data.OleDb.OleDbDataAdapter testAda;
protected WebApplication41.DataSet1 ds1;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.Button Button1;



#region Web フォーム デザイナで生成されたコード
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: この呼び出しは、ASP.NET Web フォーム デザイナで必要です。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// デザイナ サポートに必要なメソッドです。このメソッドの内容を
/// コード エディタで変更しないでください。
/// </summary>
private void InitializeComponent()
{
this.testCnt = new System.Data.OleDb.OleDbConnection();
this.oleDbSelectCommand1 = new System.Data.OleDb.OleDbCommand();
this.testAda = new System.Data.OleDb.OleDbDataAdapter();
this.ds1 = new WebApplication41.DataSet1();
((System.ComponentModel.ISupportInitialize)(this.ds1)).BeginInit();
this.Button1.Click += new System.EventHandler(this.Button1_Click);
//
// testCnt
//
this.testCnt.ConnectionString = @"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Database Password=;Data Source=""C:\\temp\\db2.mdb"";Password=;Jet OLEDB:Engine Type=5;Jet OLEDB:Global Bulk Transactions=1;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Encrypt Database=False";
//
// oleDbSelectCommand1
//
this.oleDbSelectCommand1.CommandText = "SELECT name, no, pass FROM [user-data]";
this.oleDbSelectCommand1.Connection = this.testCnt;
//
// testAda
//
this.testAda.SelectCommand = this.oleDbSelectCommand1;
this.testAda.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] {
new System.Data.Common.DataTableMapping("Table", "user-data", new System.Data.Common.DataColumnMapping[] {
new System.Data.Common.DataColumnMapping("name", "name"),
new System.Data.Common.DataColumnMapping("Expr1001", "Expr1001"),
new System.Data.Common.DataColumnMapping("pass", "pass")})});
//
// ds1
//
this.ds1.DataSetName = "DataSet1";
this.ds1.Locale = new System.Globalization.CultureInfo("ja-JP");
((System.ComponentModel.ISupportInitialize)(this.ds1)).EndInit();

}
#endregion

private void Button1_Click(object sender, System.EventArgs e)
{
testAda.Fill(ds1,"user-data");
}
}
}
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-03 20:18
これ、DataGrid1 は一体何をしていいのかが判らないと思いますよ... (^^;)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1046
会議室デビュー日: 2006/01/03
投稿数: 9
投稿日時: 2006-01-04 07:51
じゃんぬねっと様、どういうことでしょうか?
DataGridプロパティーにて、データセット名とテーブル名を関連づけしていますが・・・

初心者なので、変な質問して申し訳ありませんが、宜しくお願いします。
なおこ(・∀・)
大ベテラン
会議室デビュー日: 2004/04/08
投稿数: 174
お住まい・勤務地: 東京都
投稿日時: 2006-01-04 10:18
お世話になります。

できましたら、DataGrid1 の DataSource ・ DataMember プロパティに
何をセットしてるのかも書かれるとよいかもしれません。
# 多分、 ds1 とか "user-data" でしょうが...。

"SELECT name, no, pass FROM [user-data]"
でデータは確実にあるのですよね。

Fill したあとに、
this.DataGrid1.DataBind();
でしょうか。
1046
会議室デビュー日: 2006/01/03
投稿数: 9
投稿日時: 2006-01-04 22:42
引用:

なおこ(・∀・)さんの書き込み (2006-01-04 10:18) より:

Fill したあとに、
this.DataGrid1.DataBind();
でしょうか。



ずばりその通りでした。Fillした後に
this.DataGrid1.DataBind();
の一行を付け加えしたら表示するようになりました。

有難う御座いました。
1

スキルアップ/キャリアアップ(JOB@IT)