質問 |
||
| QNo.3765487 | 列名が無効です | |
|---|---|---|
| 質問者:tenikiti03 |
For hcnt = 1 To 18 w1_kin = 0 cmd.CommandText = "SELECT sum(sisitu_db) FROM syosai " _ & "WHERE hno_db = hcnt " w1_kin = cmd.ExecuteScalar() + w1_kin 省略 NEXT テーブルの列hno_dbにあるコード1から18毎の金額合計を求める のですが、上記の式(コード1の場合)では「hcntは列名の無効」となります。 hno_db = 1 では正しく実行されます。 宜しくお願いします。 |
|
困り度:
|
||
| 質問投稿日時: 08/02/11 14:07 |
||
回答良回答20pt |
|
| ANo.2 | >言語はSqlseverです 「Sqlserver」という言語はありません。 きっと「Visual Basic」ですね。 すでに shimix さんから的確なアドバイスが付いていますが、 意味が分かっていないようです。 >For hcnt = 1 To 18 としているので、「hcnt」は変数です。 それをダブルクォーテーション「"」で囲ってしまっては 単なる文字列になってしまい、変数「hcnt」の「内容」は 取り出せませんよ。 フォームにコマンドボタンを1個配置し、次のコード(3行目から4行目を入力)を実行してみると、何が起こっているかわかるはずです。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim hcnt As Integer = 1 MessageBox.Show("hcnt=" & hcnt) End Sub |
|---|---|
| 回答者:dbohunger | |
| 種類:回答 どんな人:経験者 自信:自信あり |
|
| 回答日時: 08/02/14 20:24 |
|
| |
| この回答へのお礼 | 有難うございました。 hcntが単なる文字列になってしまうのですね。 理解していませんでした。 デバックの方法も有難うございました。 |
回答良回答10pt |
|
| ANo.1 | 言語が何かわかりませんが、hcntをリテラル中に書いても勝手に展開はされないと思います。 cmd.CommandText = "SELECT sum(sisitu_db) FROM syosai " & "WHERE hno_db = " & hcnt & ・・・ とかでは? |
|---|---|
| 回答者:shimix | |
| 種類:アドバイス どんな人:経験者 自信:参考意見 |
|
| 回答日時: 08/02/11 14:36 |
|
| |
| この回答へのお礼 | 早速有難うございます 言語はSqlseverです やはり出来ないのでしょうか? |