Varchar转换未声明的表变量和其他错误

本文关键字:其他 错误 变量 转换 未声明 Varchar | 更新日期: 2023-09-27 18:17:23

我真的需要帮助。有人能看到以下代码的问题吗?所有的SelectedValue项目只是SQL数据绑定下拉框和2个文本框,一个日历控件和其他简单的字符串输入。用户进入页面,填写。我为Job_Date字段抓取DateTime.Now,其余的都是抓取输入的值,除了抓取日期的Job_DueDate(通过日历控件输入为7/06/2013,以DD/MM/YYYY格式输入),将其转换为DateTime并添加17个小时,以便默认情况下作业的截止日期是所选日期的下午5点。插入之后,我想将tbl_Job中新创建的ID OUTPUT放入tbl_job_contacts表中名为Job_ID的字段中。我以一种方式执行此操作,我得到返回给我的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 VariableOUTPUT,即使我认为我正在使用MSDN网站所说的。甚至当我试图修改它时,一个NullException错误,看看我是否能找出哪个DateTime是错误的。我真的很挣扎与此,我希望有人能帮助我整理我的代码是错误的。

Varchar转换未声明的表变量和其他错误

我认为你的输出子句应该是:

 OUTPUT inserted.Job_ID

OUTPUT子句中,您应该引用inserted伪表,而不是任何实际表。因为您想要在c#代码中捕获结果,所以您不想使用INTO语法—而是希望它生成一个结果集。

至于日期转换问题,我同意@marc_s的评论-使用参数化查询,更重要的是,不要将日期/日期时间值转换为字符串-将它们保留为Date值并让ADO。Net处理将它们直接转换为SQL datetime值。
相关文章: