C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: WebServiceでSession変数は使えない?


(過去ログ 85 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■50485 / inTopicNo.1)  WebServiceでSession変数は使えない?
  
□投稿者/ yama (1回)-(2010/06/08(Tue) 17:34:47)

分類:[ASP.NET (C#)] 

オートコンプリートをする為に、以下のように組んでみたのですが、
Session変数を扱えないようで困っています。

Session["工場id"]の値を使用したいのですが、このような場合は
どうやって引渡すのでしょうか?

何か方法があれば、よろしくお願いします。

※STOREDが投稿できなかったのでこの部分は全角にしました。

<asp:TextBox ID="設備idTextBox" runat="server"
CssClass="inputFieldNum" MaxLength="10" AutoPostBack="true"
Text='<%# Bind("設備id") %>' />


<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
ServiceMethod="GetCompletionList" ServicePath="AutoCompleteSetsubi.asmx"
TargetControlID="設備idTextBox" UseContextKey="True" MinimumPrefixLength="2">
</cc1:AutoCompleteExtender>

public class AutoCompleteSetsubi : System.Web.Services.WebService {

[WebMethod()]
public String[] GetCompletionList(String prefixText, int count)
{
List<String> list = new List<String>();
ConnectionStringSettings setting =
ConfigurationManager.ConnectionStrings["ConnectionStringEstimaDB"];

using (SqlConnection con = new SqlConnection(setting.ConnectionString))
{
using (SqlCommand cmd = new SqlCommand("sp_paramSetsubiForAutoComp"))
{
cmd.CommandType = CommandType. STOREDProcedure;
cmd.Parameters.Add("@設備id", SqlDbType.VarChar);
cmd.Parameters["@設備id"].Value = prefixText;
cmd.Parameters.Add("@工場id", SqlDbType.VarChar);
cmd.Parameters["@工場id"].Value = Session["工場id"].ToString();
cmd.Connection = con;
con.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
list.Add(reader.GetString(0));
}
}
}
}
return list.ToArray();
}
引用返信 編集キー/
■50486 / inTopicNo.2)  Re[1]: WebServiceでSession変数は使えない?
□投稿者/ マサヤ (5回)-(2010/06/08(Tue) 17:50:19)
2010/06/08(Tue) 18:10:37 編集(投稿者)
2010/06/08(Tue) 18:10:27 編集(投稿者)

質問の内容とソースがわかりにくいかなぁ、と。
>>cmd.Parameters["@工場id"].Value = Session["工場id"].ToString();
ここでSession["工場id"]に値が入っていないのでうまくいかない、ってことですか?

"工場id"はどこかで入力するのですか?DBや設定ファイルからもってくるのですか?

質問が見当違いでしたらスミマセン。
とりあえず、Session["工場id"]のNullチェックを入れましょう。
で、ここ読んでみてください。
http://msdn.microsoft.com/ja-jp/library/aa480509.aspx
引用返信 編集キー/
■50488 / inTopicNo.3)  Re[1]: WebServiceでSession変数は使えない?
□投稿者/ todo (12回)-(2010/06/08(Tue) 18:14:14)
No50485 (yama さん) に返信
> [WebMethod()]

[WebMethod(EnableSession=true)]
引用返信 編集キー/
■50489 / inTopicNo.4)  Re[2]: WebServiceでSession変数は使えない?
□投稿者/ なちゃ (446回)-(2010/06/08(Tue) 18:15:13)
WebMethod属性でEnableSessionをtrueに設定しましょう。
デフォルトではセッションは無効になっています。

引用返信 編集キー/
■50491 / inTopicNo.5)  Re[2]: WebServiceでSession変数は使えない?
□投稿者/ 中博俊 (1414回)-(2010/06/08(Tue) 18:49:06)
使えるようにする方法はそうですけど、基本的に使わないで済むステートレスな仕組みにするべきという話はないの?
引用返信 編集キー/
■50493 / inTopicNo.6)  Re[3]: WebServiceでSession変数は使えない?
□投稿者/ なちゃ (447回)-(2010/06/08(Tue) 19:08:01)
まあそれは書こうかやや迷いましたが、用途がAjaxからの呼び出しですから、
すでにセッション使ってるなら避ける意味もあまりないでしょう。

引用返信 編集キー/
■50642 / inTopicNo.7)  Re[4]: WebServiceでSession変数は使えない?
□投稿者/ yama (2回)-(2010/06/14(Mon) 08:31:24)
みなさん、ありがとうございます。
こんな設定があったとは・・・
EnableSessionの変更で解決しました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -