お疲れ様です。
データセットから1行だけを取り出したいのですがFormで変数を作ろうとしていたら
Friend Sub New (rb As system.Data.DataRowBuilder)のパラメータ'rb'に対して引数が指定されていませんとでました。
どうすればいいのでしょうか?
ちなみに書いたソースは
Dim row As New データセット名.データRowです。
よろしくお願いします。
。。。とにかくむちゃくちゃな感じ。
変数宣言で使用するのはデータ型です。
実体を使用しないで下さい。
また、何でもかんでも New すればいいわけではありません。
インスタンスが必要な場面で、コンストラクタが公開されている
場合に行ってください。
変数宣言は
Dim row As DataRow
これだけいいはずです。
あと、データセットに DataRow は格納されていません。
間に DataTable が抜けてます。勉強しなおしてください。
[ADO.NET基礎講座 データセットの基本構造]
http://www.atmarkit.co.jp/fdotnet/basics/adonet04/adonet04_01.html
> データセットから1行だけを取り出したいのですが
特定の行位置から取り出すのであれば、
Dim row As データセット名.データRow
row = tbl(0)
などとすれば OK です。
0 は行番号、変数 tbl は型付DataTable(データセット名.データ)型です。
また、主キー値に基づいて取り出すのであれば、
Dim row As データセット名.データRow
row = tbl.FindBy列名1("値1")
のようにも書けます。
> Dim row As New データセット名.データRowです。
新しい行を追加したい場合は、New するのではなく、
Dim row As データセット名.データRow
row = tbl.NewデータRow()
row.列名1 = "値1"
row.列名2 = "値2"
tbl.AddデータRow(row)
のようにします。
もしくは「tbl.AddデータRow("値1", "値2", …)」とか。
# 話が別の方向に行っているような。
> あと、データセットに DataRow は格納されていません。
> 間に DataTable が抜けてます。勉強しなおしてください。
今回の質問は、型付きデータセット(Typed DataSet)に対するものでしょう。
[データセット名] という名前の DataSet を作り、その中に
[データ] という名前の DataTable を作ったというのが、
今回のシナリオかと。
この場合、使用可能な型としては
Dim ds As データセット名
Dim tbl As データセット名.データDataTable
Dim row As データセット名.データRow
となりますので、型の指定方法そのものは間違っていないと思いますよ。
ツイート | ![]() |