我真的需要帮助。任何人都可以看到以下代码的问题吗?所有SelectedValue
项目都只是 SQL 数据绑定下拉框和 2 个文本框,一个带有日历控件,另一个用于简单的字符串输入。用户转到页面,填写它。我抓取DateTime.Now
该Job_Date
字段,其余部分抓取输入的值,但抓取日期除外Job_DueDate
(通过日历控件输入为 DD/MM/YYYY 中的 7/06/2013格式),将其转换为DateTime
并添加 17 小时,因此默认情况下,作业的截止日期是所选日期的下午 5 点。插入后,我想OUTPUT
将新创建的 IDtbl_Job
放入表中调用的字段Job_ID
中tbl_job_contacts
。我执行此操作的方式是让我将存储的 ID 返回给我result
. 在第二个INSERT
查询中,我将该结果和另一个结果插入SelectValue
表tbl_job_contacts
中,然后刷新页面。
protected void submitButton_Click(object sender, EventArgs e)
{
DateTime dt = DateTime.Now;
var dd = Convert.ToDateTime(DueDate.Text);
DueDate.Text = dd.AddHours(17).ToString();
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["HSEProjRegConnectionString1"].ConnectionString);
conn.Open();
SqlCommand cmd1 = new SqlCommand("INSERT INTO tbl_Job(Job_Date,Job_Origin_ID,Job_Department_ID,Job_Priority_ID,Job_Project_ID,Job_Status_ID,Job_DueDate,Job_Project_Item) OUTPUT tbl_Job.Job_ID INTO tbl_job_contacts(Job_ID) VALUES ('" + dt + "', '" + ReferenceOrigin.SelectedValue + "', '" + Department.SelectedValue + "', '" + Priority.SelectedValue + "', '" + Project.SelectedValue + "', '" + Status.SelectedValue + "', '" + DueDate.Text + "', '" + ProjectItem.Text + "')", conn);
int result = ((int)cmd1.ExecuteScalar());
SqlCommand cmd2 = new SqlCommand("INSERT INTO tbl_job_contacts(Job_ID,Contact_ID) VALUES ('" + result + "', '" + Sponsor.SelectedValue + "')", conn);
cmd2.ExecuteNonQuery();
conn.Close();
Page.Response.Redirect(Page.Request.Url.ToString(), false);
}
无论我删除或修改什么,我都会不断出错。varchar 转换为 DateTime 是一个超出范围的值,它不会告诉我是哪一个,因为有 2 个,或者Must Declare Local Variable
即使OUTPUT
我认为我正在使用 MSDN 网站所说的内容。当我尝试以某种方式修改它以查看是否可以找出哪个 DateTime 错误时,甚至出现 NullException 错误。我真的在为此苦苦挣扎,希望有人可以帮助我找出我的代码错误的地方。