• ベストアンサー

ASP.NETでDB操作中・・・

ストアドプロシージャ内で、NVARCHAR型の変数に、たとえば[1,2,3,........12]などとカンマ区切りの文字列を代入した後、それをTINYINT型のパラメータに代入して、それぞれの数字の該当するアンケート項目をページに表示したいと思っています。(XMLを使用せず)ただ、変数が違うため、当然のごとくエラーがでます。ストアドプロシージャの中でコンバートするにも、カンマが入っているため、いい方法が思い浮かびません。ストアドプロシージャ外でコンバートしてやるのもうまくいきませんでした。なにか良い方法はありませんでしょうか。よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hpp
  • ベストアンサー率64% (22/34)
回答No.1

string[] arrItem = new string[30]; string delimStr = ","; char [] delimiter = delimStr.ToCharArray(); arrItem = NVARCHAR型の変数.Split(delimiter); とすれば分解できますが、外してるかもしれませんね(^^; 配列数の30は適当ですが、カンマの数を数えれば正確にわかりますね。

mofa
質問者

お礼

ありがとうございました!なんとかできました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ASP.netにストアドプロシージャが登録できない

    ASP.netにストアドプロシージャが登録できません。 SQLServer2000にストアドプロシージャを作成しASP.netにsqlcommandを作成。 sqlcommandのプロパティのcommandtypeをStoredProcedureとし、 commandtextにストアドプロシージャ名を入力すると このコマンドの新しいパラメータコレクションを作成しますか?と出てきて 「はい」とするとサーバー名選択画面となり、サーバー名を正しく入力し ログインID、パスワードも正しく入力、オプションも正しく入力したが OK押下後にプロパティの値が無効ですとなってしまい詳細を見ると ストアドプロシージャ***がデータベースに見つかりませんでしたと なってしまいます。 既存のストアドプロシージャはリンク出来るのですが、新規のものが このようになります。原因・解決方法を教えて頂きたく宜しくお願いします。

  • shellからストアドプロシージャの呼び出し

    shellからストアドプロシージャにinパラメータを渡し、 outパラメータに値やエラーコード等を戻す際、 shellの変数でそのまま受け取ることは可能でしょうか? shellでエラーコードなどのoutパラメータを受け取る 一般的な方法を教えてください。

  • ストアドでXMLファイルを読込む方法は?

    SQLServer2005のストアドプロシージャでXMLファイルを読込む方法を教えてください。

  • PL/SQLに関して

    PL/SQLに関しての質問です。 1、プロシージャの内部にファンクションをネストするなどということはできるのでしょうか? (内部ファンクションのような感じで) 2、プロシージャからファンクションを呼び出し、ファンクションの戻り値をレコード型変数にした場合、ファンクションでSELECTしたレコード件数が0件であった場合、例外ブロックのWHEN no_data・・・THEN で、RETURN NULLで戻すことはできるでしょうか? (呼び出し側で、レコード型変数にNULLを代入できますか?) 3、ObjectBrowserからストアドプロシージャを実行するとき、引数ありのストアドプロシージャを実行する方法を教えてください。(または参考WEBサイトを教えてください。) いずれも、試す環境が今ないため、ご回答のほどよろしくお願いします。

  • DTSでCSVファイルを出力するさいのファイル名変更

    こんにちは、DTS初心者です。 ストアドプロシージャーよりパラメータを渡して DTSを起動しておりますが、 DTSでCSVファイルを出力するさいに、 その指定したパラメータのパスで出力したいのですがうまくいきません。 現状は、 Text File(Destinetion)のプロパティの ファイル名を 「@パラメータ名」としてます。 パラメータ名はグローバル変数として定義してます。 動的にファイル名を変えたいのですが 方法をご存知でしたら教えてください。

  • csvファイルからの読み込みがスムーズにできません

    fscanfでCSVファイルから文字列を取り込み、カンマ区切りで4つの変数に文字列を代入しようと考えているのですが、出力されたcsvファイルが変わった区切りかたをしているのでうまく変数に代入できずに困っております。 例えば、出力されたcsvファイルは以下のようになっております "ABC CO.,I","4540",""STAR"","2010/03/31" 希望としては aにABC CO.,I bに4540 cにSTAR dに2010/03/31 をそれぞれ代入したいのですが aに入る文字列にはCO.,Iというようにカンマが既にありますので カンマ区切りで読み込むとめちゃくちゃになってしまいます ですので基準をダブルクオーテーションに置き、"と"の間の文字列を代入というような形が取れれば良いのですが、このような方法での文字列取得は可能でしょうか? c言語の勉強を始めて間もない為、低レベルな質問、表現であることをお許し下さい。 よろしくお願いします。

  • ストアドプロシージャでN個の引数を与える方法

    SQL Server 2012 の環境でカンマ区切りでN個の要素を引数としてストアドプロシージャを実行したいのですが、可能でしょうか?(CONCAT関数のような指定方法をイメージしています。) 【呼出イメージ】 EXECUTE StoredTest N'10001', N'10002', N'10003', N'10004' ...N すみませんが、どなたかご教示いただけないでしょうか?

  • PHPのcheckbox操作

    MySQL上で、値を数字でカンマ区切りで持っているデータがあり、 そのデータをPHPで呼び出して、該当のcheckboxにデフォルトでチェックを入れたいのですが、上手くいきません。 例:カラム上に、「1,5,6」というデータが入っていた場合、 checkboxのvalue値が、「1,5,6」の箇所にデフォルトでチェックを入れたいと思っています。 すみませんが、どなたかわかる方がいらっしゃれば教えて頂きたく。

  • ストアドから得られるレコードセットを、別のストアドで利用したい

    現在、実行するとあるレコードセット(1行1列のみ)を返すストアドプロシージャProc_Aがありますが、このプロシージャを実行して得られる結果を、 別のプロシージャProc_Bで、以下のような形で使用したいと考えています。 ただし、Case文内部でのストアドの実行や、変数へのストアドの実行結果の代入を試しましたが、どちらもうまくいっていません。 なにか、よい解決策があれば、教えていただければ、と思います。 パターンA) Case内部で直接実行 select case Table_A.param_1 when 0 then Exec Proc_A '***','**' else '' end パターンB)いったんパラメータとして取得 declare @values as char(10) execute sp_executesql N'@values = Proc_A ''***'',''**''', N'@values char(10) OUTPUT', @values OUTPUT

  • ストアドプロシージャでのパラメータのデータ型の質問

    いつもお世話になっております。たびたびの質問で恐縮です。 ストアドプロシージャでのパラメータのデータ型が設定できず困っております。たとえば次はパラメータの文字を表示させるものです。 CREATE OR REPLACE PROCEDURE test(p VARCHAR2(10)) IS t VARCHAR2(10); BEGIN t:=p; DBMS_OUTPUT.PUT_LINE(t); END; / コンパイルエラーになるので、パラメータのデータ型を、VARCHAR2のように(10)を取るとうまくいきます。しかし、変数定義の「t VARCHAR2(10)」の(10)を取ると文字列の制約制限からはずれるとのエラーになります。 VARCHAR2というのは、PL/SQLの変数あるいはパラメータではどのように記述すればよろしいのでしょうか。 基本的なことを理解しておらず、申し訳ありません。 どうか、よろしくお願いいたします。

iPhoneからの印刷について
このQ&Aのポイント
  • iPhoneのカメラロールからの印刷方法や中止する方法についての相談です。印刷が遅い場合の対策も知りたいです。
  • iPhoneからの印刷時に大量のプリントが出てくる問題や印刷速度の遅さについての相談です。
  • ブラザー製品のDCPJ4140Nを使用して、iPhoneからの印刷時にプリントが大量に出てくる問題や印刷速度の遅さに困っています。中止する方法や速くする方法を教えてください。
回答を見る