0

我有一个公司可以注册的表格,在此注册中随机生成一个用户代码... CompCode 与数据库表中的所有其他信息一起保存为主键...

当用户注册时,他们可以登录...当他们成功登录时,他们的 compName 被保存为会话变量

Session["CompName"] = TextBox1.Text;

现在一旦登录,他们就有机会发布工作,这个工作详细信息保存在另一个名为 job 的表中......但是为了使工作详细信息与公司相关,我需要 CompID

如何使用会话 CompName 检索 CompID

 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.";
}
4

3 回答 3

1

如果您的意思是您想从会话中获得价值,那么您就是这样做的

  if(Compname == (string)Session["CompName"])
于 2012-10-30T11:29:52.437 回答
1

在存储过程本身中处理这个问题,传递存储在会话中的公司名称,如@sleiman jneidi 所述。

在存储过程中,首先检索 compName = @compName 的所有 compCode,然后执行其余操作。

于 2012-10-30T11:34:40.177 回答
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();
}

这行得通,它给了我我想要的东西,如果有更好的理由,请随时发表评论

于 2012-10-30T12:30:32.900 回答