- - PR -
DataGridクリック後の処理について
1
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-05-20 19:03
お世話になります。
過去ログ等を色々調べたのですがどうしても不明な点があります。 ご存知の方がいらっしゃればご教授下さい。 (まだ2度目の投稿の為マナー違反等ありましたらご指摘下さい) VS.NET2003 MSDE2000 で開発をしております。 やりたいことは(初歩的な質問で申し訳ありません) @フォーム上のDataGridのあるレコードをクリック A該当レコードの内容が同一フォーム上にあるテキストボックスへ表示 です。 DataGridのMouseUpで該当レコードのindexを取得し、その値(strKbn)を以下のルーチンへ渡すところまではなんとかできました。 ///// Function M_SELECT(ByVal PistrMakPath As String) As Boolean Dim cn As New SqlClient.SqlConnection Dim cmd As New SqlClient.SqlCommand Dim dr As SqlClient.SqlDataReader cn.ConnectionString = "Data Source=(local);Initial Catalog=XXXX;" & _ "User ID=sa;Password=9999" cn.Open() cmd.Connection = cn cmd.CommandText = "SELECT Cd FROM mst_Item WHERE Kbn = " + strKbn dr = cmd.ExecuteReader (この後に処理・・・) /// 以前、MDBで作成していた(サンプルを拝見させていただきました)ものは /// Function MDB_M_SELECT(ByVal PistrMakPath As String) As Boolean Dim strDatbasePara As String 'データベースパラメータ Dim ObjCnn As New ADODB.Connection Dim ObjRst As New ADODB.Recordset Dim strSelectSql As String strDatbasePara = "Provider=Microsoft.Jet.OLEDB.4.0;" + _ "Data Source= D:\XXXX.mdb;" + _ "Jet OLEDB:Engine Type=5;" Try ObjCnn.Open(strDatbasePara) strSelectSql = "Select Cd from mst_Item" _ + " where Kbn = " + strKbn ObjRst.Open(strSelectSql, ObjCnn, _ ADODB.CursorTypeEnum.adOpenKeyset, _ ADODB.LockTypeEnum.adLockOptimistic) If ObjRst.EOF Then '/レコードがない場合はnullを返す strCd = "" 'コード Else '/存在するときは値を返す strCd = ObjRst.Fields("Cd").Value End If ObjRst.Update() ObjRst.Close() Catch ex As Exception End Try ObjCnn = Nothing ObjRst = Nothing /// つまるところMDBからSQLへ変更したところどのようにコードを 変更すればよいのか分からない状態です・・・。 調べるべきポイント等がありましたらご教授下さい。 宜しくお願いいたします。 | ||||||||||||||||||||
|
投稿日時: 2004-05-20 19:36
直接関係ないですが、
ここのところ、こうします。
で、本題。 ExecuteReaderメソッドで、SqlDataReaderは取れていますね。それでは、これは見ました?ここに、
と書いてあるように、
で読み込めます。が、この場合、必ず1行しか返ってこないですね?しかも、1列目しか取りませんね?それなら、
です。 | ||||||||||||||||||||
|
投稿日時: 2004-05-20 19:53
Jitta 様
ご返信誠にありがとう御座います。 ただ今ご返信頂いたことを頑張って調べているところですが、 ご親切に教えていただきましたことを取り急ぎお礼を申し上げます。 結果の方は改めてご報告させて頂きます。 ありがとうございました。 | ||||||||||||||||||||
|
投稿日時: 2004-05-20 20:35
Jitta 様
先程は本当にありがとうございました。 お陰で実現できました(しかも至って簡素なコードで) パラメータークエリの書き方までご指南頂いてしまいまして、ありがとうございます。 /// Function M_SELECT(ByVal PistrMakPath As String) As Boolean Dim cn As New SqlClient.SqlConnection Dim cmd As New SqlClient.SqlCommand Dim dr As SqlClient.SqlDataReader cn.ConnectionString = "Data Source=(local);Initial Catalog=XXXX;" & _ "User ID=sa;Password=9999" cn.Open() cmd.Connection = cn cmd.CommandText = "SELECT Cd FROM mst_Item WHERE Kbn =@Kbn AND cd=@Cd" cmd.Parameters.Add("@Kbn", strKbn) cmd.Parameters.Add("@Cd", strCd) '★今後はこのように記述します strCd = cmd.ExecuteScalar '★Jitta様より教えていただいた記述 Console.WriteLine(strCd) End Function /// 非常に分かりやすくご教授頂きましたことを重ね重ねお礼申し上げます。 ありがとうございました。 |
1