0

会社が登録できるフォームがあります。この登録では、ユーザー コードがランダムに生成されます... CompCode は、他のすべての情報とともにデータベース テーブルに主キーとして保存されます...

ユーザーが登録されると、ログインできます... ログインに成功すると、compName がセッション変数として保存されます

Session["CompName"] = TextBox1.Text;

ログインすると、彼らは仕事を投稿する機会があります。この仕事の詳細は、仕事と呼ばれる別のテーブルに保存されます...しかし、仕事の詳細を会社に関連付けるためには、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 に答える