Asp.net 在my where子句中使用querystring参数生成插入操作

Asp.net 在my where子句中使用querystring参数生成插入操作,asp.net,Asp.net,在这里,我使用request.Querystring查找特定作业的companyname和job title。当用户在texbix中使用用户名登录时。我希望companyname、jobtitle和username位于表的同一行中。但当我生成查询时,它会插入(companyname&jobtitle)第一行是用户名,第二行是用户名。我如何完成我的任务。有些人说,我必须将companyname和jobtitle保存在一个变量中…然后执行。 这是一个完美的解决方案吗? 如果是,我怎么做? 代码: 在

在这里,我使用request.Querystring查找特定作业的companyname和job title。当用户在texbix中使用用户名登录时。我希望companyname、jobtitle和username位于表的同一行中。但当我生成查询时,它会插入(companyname&jobtitle)第一行是用户名,第二行是用户名。我如何完成我的任务。有些人说,我必须将companyname和jobtitle保存在一个变量中…然后执行。 这是一个完美的解决方案吗? 如果是,我怎么做? 代码:

在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");
使用

而不是

string apply = "INSERTINTO Company (CandidateInformation) Values 
(@CandidateInformation)" ;
如果再次使用
Insert
语句,则它将始终在表中创建新记录


Update
用于更新表中已存在的记录。

插入两次将始终产生两个新行。 您可以在第一条insert语句中完成这一切:

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");


            }

那么您就不需要第二页了。

我还使用两条查询语句在一个按钮中尝试了这两种查询,但这与您听说过SQL注入吗??如果没有,请看一看我编辑的这篇文章,使JobNo成为sql参数,以避免sql注入黑客攻击的可能性
string apply = "INSERTINTO Company (CandidateInformation) Values 
(@CandidateInformation)" ;
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");


            }