使用where子句中的querystring参数生成插入操作

时间:2012-05-18 10:07:51

标签: asp.net

这里,使用request.Querystring我找到特定Job的公司名称和职位。当用户使用texbix.i中的用户名登录时,想要在表格的同一行中使用Companyname,jobtitle和username。但是当我生成我的查询时它在第一行插入(companyName& jobtitle),在第二行插入用户名。如何完成我的任务。有些人说,我必须将公司名称和作业标记保存在变量中......然后执行。 这是一个完美的解决方案吗? 如果是的话,我该怎么做? 代码:

protected void ButtonApply_Click(object sender, EventArgs e) {
    String str = Request.QueryString.Get("JobNo");

    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
    conn.Open();

    string apply = "INSERT INTO Company (CompanyName,JobTitle) select CompanyName,JobTitle from Jobs where JobNo='"+str+"'" ; 

    SqlCommand insertApply = new SqlCommand(apply, conn);
    try {
        insertApply.ExecuteScalar();
        conn.Close();
        Response.Redirect("ApplyJob.aspx?JobNo="+str);
    }
在apply.aspx中的

我有以下代码:

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
conn.Open();

string apply = "INSERT INTO Company (CandidateInformation) Values (@CandidateInformation)" ;

SqlCommand insertApply = new SqlCommand(apply, conn);

insertApply.Parameters.AddWithValue("@CandidateInformation", TextBoxaun.Text);
insertApply.ExecuteNonQuery();

conn.Close();

Response.Redirect("CompanyInfo.aspx");

2 个答案:

答案 0 :(得分:0)

使用

Update Company Set CandidateInformation = @CandidateInformation where JobNo='"+str+"'" ;

而不是

string apply = "INSERTINTO Company (CandidateInformation) Values 
(@CandidateInformation)" ;

如果您再次使用Insert语句,那么它将始终在表格中创建新记录。

Update用于更新表的现有记录。

答案 1 :(得分:0)

插入两次将始终产生两个新行。 您可以在第一个插入语句中完成所有操作:

string apply = "INSERT INTO Company (CompanyName,JobTitle, CandidateInformation) select 
CompanyName,JobTitle, @CandidateInformation from Jobs where JobNo=@JobNo ;

    SqlCommand insertApply = new SqlCommand(apply, conn);

    insertApply.Parameters.AddWithValue("@CandidateInformation", 
    TextBoxaun.Text);
    insertApply.Parameters.AddWithValue("@JobNo", str);
            try

            {

                insertApply.ExecuteScalar();

                conn.Close();
                Response.Redirect("CompanyInfo.aspx");


            }

然后你不需要第二页。