2012-10-30 71 views
0

我有一個公司可以註冊的表單,在這個註冊中隨機生成一個用戶代碼...將所有其他信息保存在數據庫表中作爲主鍵...從會話中檢索字段

當用戶註冊,他們可以登錄...當他們成功地登錄,其COMPNAME保存爲一個會話變量

Session["CompName"] = TextBox1.Text; 

現在登錄後,他們有機會發布工作,這份工作細節保存在另一張名爲job的表格中......但是爲了使工作細節與公司相關,我需要CompID

如何檢索使用會話COMPNAME

protected void Save_Click(object sender, EventArgs e) 
{ 
    string answer = "NO"; 
    string strcon = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\VC_temps.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"; 
    SqlConnection con = new SqlConnection(strcon); 

    SqlCommand com = new SqlCommand("Store-Jobs", con); 
    com.CommandType = CommandType.StoredProcedure; 
    com.Parameters.AddWithValue("Job", TextBox1.Text); 
    com.Parameters.AddWithValue("JobType", DropDownList1.Text); 
    com.Parameters.AddWithValue("StartDate", Calendar1.SelectedDate); 
    com.Parameters.AddWithValue("Time", TextBox2.Text); 
    com.Parameters.AddWithValue("JobID", TextBox1.Text.Substring(3).ToUpper()); 
    com.Parameters.AddWithValue("CompanyID", ?); 
    com.Parameters.AddWithValue("PoistionFilled", answer); 
    com.Parameters.AddWithValue("Description", TextBox4.Text); 

    con.Open(); 
    com.ExecuteNonQuery(); 
    Labelinfo.Text = "Post successful."; 
} 
+0

你想你所有的公司信息在會議或只是在CompCode ...然後打數據庫獲取其餘的相關信息的公司? –

+0

當用戶成功登錄時,檢索關聯的組件 – NoviceProgrammer

+0

查看:[從會話狀態讀取值](http://msdn.microsoft.com/zh-cn/library/03sekbw5%28v=vs.100%29 .aspx#Y0) –

回答

1

的CompID如果通過這一點,你想獲得從會話中值平均那麼這是怎麼做到的

if(Compname == (string)Session["CompName"]) 
+0

'Session'對象也可以通過'System.Web.HttpContext.Current.Session'來訪問,但你只需要外部的代碼隱藏。 – Heki

1

處理這在存儲過程本身中,按照@sleiman jneidi的描述傳遞存儲在會話中的共享名。

在存儲過程中,首先檢索compName = @compName所在的所有compCode,然後完成剩下的事情。

0

首先,我創建像遵循一個數據源:

<asp:SqlDataSource ID="SqlDataSource_CompID" runat="server" 
       ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
       SelectCommand="SELECT [CompanyID] FROM [Company] WHERE ([CompName] = @CompName)"> 
       <SelectParameters> 
        <asp:SessionParameter Name="CompName" SessionField="CompName" Type="String" /> 
       </SelectParameters> 
      </asp:SqlDataSource> 

然後我加入以下代碼的代碼背後

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!this.IsPostBack) 
    { 
     this.getName(); 
    } 
} 
private void getName() 
{ 
    DataView dv = (DataView)SqlDataSource_CompID.Select(DataSourceSelectArguments.Empty); 
    DataRowView drv = dv[0]; 

    Session["CompID"] = drv["CompanyID"].ToString(); 
} 

這個工作,它給了我什麼,我一直在尋找,如果有更好的爲什麼在這樣做,請隨時和評論