必须声明标量变量@EXPORTSTATUS1"

本文关键字:quot @EXPORTSTATUS1 变量 声明 标量 | 更新日期: 2023-09-27 18:13:25

我有一个将sql数据导出为文本文件的程序。在我的代码中,我想检查文件是否成功创建/导出,如果成功,则将其插入sql表中。我的项目构建良好,但是我收到"必须声明标量变量"@EXPORTSTATUS1"。我也不知道为什么。我的代码如下:

    string connectionStringlast = "Data Source=SWDB10DSQL;Initial Catalog=BillingUI;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework";
        using (SqlConnection _conman = new SqlConnection(connectionStringlast))
        {
                _conman.Open();
                //opens the predefined connection _con
                string exportdate = DateTime.Now.ToString("M/d/yyyy  h:mm:ss tt");
                string exportstatus = "Exported";
                string inserttheString = @"INSERT INTO EXPORT_TRACKER
                    (EXPORT_DATE, T1STATUS, T2STATUS, T3STATUS, T4STATUS, T5STATUS, T6STATUS, T7STATUS, T8STATUS, T9STATUS, T10STATUS)
                    VALUES(@EXPORTDATE, @EXPORTSTATUS1, @EXPORTSTATUS2, @EXPORTSTATUS3, @EXPORTSTATUS4, @EXPORTSTATUS5, @EXPORTSTATUS6, @EXPORTSTATUS7, @EXPORTSTATUS8, @EXPORTSTATUS9, @EXPORTSTATUS10)";
                //defines the sql insert query to be performed 
                using (SqlCommand cmd5 = new SqlCommand(inserttheString, _conman))
                {
                    cmd5.Parameters.Add("@EXPORTDATE", SqlDbType.NChar);
                    cmd5.Parameters["@EXPORTDATE"].Value = exportdate;
                    if (System.IO.File.Exists("C:''BillingExport''tbl1_export.txt"))
                    {
                        cmd5.Parameters.Add("@EXPORTSTATUS1", SqlDbType.NChar);
                        cmd5.Parameters["@EXPORTSTATUS1"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl2_export.txt"))
                    {
                        cmd5.Parameters.Add("@EXPORTSTATUS2", SqlDbType.NChar);
                        cmd5.Parameters["@EXPORTSTATUS2"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl3_export.txt"))
                    {
                        cmd5.Parameters.Add("@EXPORTSTATUS3", SqlDbType.NChar);
                        cmd5.Parameters["@EXPORTSTATUS3"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl4_export.txt"))
                    {
                        cmd5.Parameters.Add("@EXPORTSTATUS4", SqlDbType.NChar);
                        cmd5.Parameters["@EXPORTSTATUS4"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl5_export.txt"))
                    {
                        cmd5.Parameters.Add("@EXPORTSTATUS5", SqlDbType.NChar);
                        cmd5.Parameters["@EXPORTSTATUS5"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl6_export.txt"))
                    {
                        cmd5.Parameters.Add("@EXPORTSTATUS6", SqlDbType.NChar);
                        cmd5.Parameters["@EXPORTSTATUS6"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl7_export.txt"))
                    {
                        cmd5.Parameters.Add("@EXPORTSTATUS7", SqlDbType.NChar);
                        cmd5.Parameters["@EXPORTSTATUS7"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl8_export.txt"))
                    {
                        cmd5.Parameters.Add("@EXPORTSTATUS8", SqlDbType.NChar);
                        cmd5.Parameters["@EXPORTSTATUS8"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl9_export.txt"))
                    {
                        cmd5.Parameters.Add("@EXPORTSTATUS9", SqlDbType.NChar);
                        cmd5.Parameters["@EXPORTSTATUS9"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl10_export.txt"))
                    {
                        cmd5.Parameters.Add("@EXPORTSTATUS10", SqlDbType.NChar);
                        cmd5.Parameters["@EXPORTSTATUS10"].Value = exportstatus;
                    }
                    cmd5.ExecuteNonQuery();
                    //executes to insert query
                    _conman.Close();
                    //closes the no longer in use database connection
                }
            }

我已经将我的代码更改为以下内容,但现在收到许多两个错误的实例。"期望的类、委托、枚举、接口或结构"answers"名称cmd5在当前上下文中不存在"。

 string connectionStringlast = "Data Source=SWDB10DSQL;Initial Catalog=BillingUI;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework";
        using (SqlConnection _conman = new SqlConnection(connectionStringlast))
        {
                _conman.Open();
                //opens the predefined connection _con
                string exportdate = DateTime.Now.ToString("M/d/yyyy  h:mm:ss tt");
                string exportstatus = "Exported";
                string inserttheString = @"INSERT INTO EXPORT_TRACKER
                    (EXPORT_DATE, T1STATUS, T2STATUS, T3STATUS, T4STATUS, T5STATUS, T6STATUS, T7STATUS, T8STATUS, T9STATUS, T10STATUS)
                    VALUES(@EXPORTDATE, @EXPORTSTATUS1, @EXPORTSTATUS2, @EXPORTSTATUS3, @EXPORTSTATUS4, @EXPORTSTATUS5, @EXPORTSTATUS6, @EXPORTSTATUS7, @EXPORTSTATUS8, @EXPORTSTATUS9, @EXPORTSTATUS10)";
                //defines the sql insert query to be performed 
                using (SqlCommand cmd5 = new SqlCommand(inserttheString, _conman))
                {
                    cmd5.Parameters.Add("@EXPORTDATE", SqlDbType.NChar);
                    cmd5.Parameters["@EXPORTDATE"].Value = exportdate;
                    cmd5.Parameters.Add("@EXPORTSTATUS1", SqlDbType.NChar);
                    cmd5.Parameters.Add("@EXPORTSTATUS2", SqlDbType.NChar);
                    cmd5.Parameters.Add("@EXPORTSTATUS3", SqlDbType.NChar);
                    cmd5.Parameters.Add("@EXPORTSTATUS4", SqlDbType.NChar);
                    cmd5.Parameters.Add("@EXPORTSTATUS5", SqlDbType.NChar);
                    cmd5.Parameters.Add("@EXPORTSTATUS6", SqlDbType.NChar);
                    cmd5.Parameters.Add("@EXPORTSTATUS7", SqlDbType.NChar);
                    cmd5.Parameters.Add("@EXPORTSTATUS8", SqlDbType.NChar);
                    cmd5.Parameters.Add("@EXPORTSTATUS9", SqlDbType.NChar);
                    cmd5.Parameters.Add("@EXPORTSTATUS10", SqlDbType.NChar);

                    if (System.IO.File.Exists("C:''BillingExport''tbl1_export.txt"))
                    {           
                        cmd5.Parameters["@EXPORTSTATUS1"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl2_export.txt"))
                    {                            
                        cmd5.Parameters["@EXPORTSTATUS2"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl3_export.txt"))
                    {                          
                        cmd5.Parameters["@EXPORTSTATUS3"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl4_export.txt"))
                    {                           
                        cmd5.Parameters["@EXPORTSTATUS4"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl5_export.txt"))
                    {                            
                        cmd5.Parameters["@EXPORTSTATUS5"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl6_export.txt"))
                    {                           
                        cmd5.Parameters["@EXPORTSTATUS6"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl7_export.txt"))
                    {                            
                        cmd5.Parameters["@EXPORTSTATUS7"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl8_export.txt"))
                    {                          
                        cmd5.Parameters["@EXPORTSTATUS8"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl9_export.txt"))
                        cmd5.Parameters["@EXPORTSTATUS9"].Value = exportstatus;
                    }
                    if (System.IO.File.Exists("C:''BillingExport''tbl10_export.txt"))
                    {                          
                        cmd5.Parameters["@EXPORTSTATUS10"].Value = exportstatus;
                    }
                    cmd5.ExecuteNonQuery();
                    //executes to insert query
                    _conman.Close();
                    //closes the no longer in use database connection
                }
            }

我修复了这些错误,它缺少一个结束括号。现在它构建了,但是在执行时我收到了一个不同的错误。

"参数化查询'(@EXPORTDATE nchar(22),@EXPORTSTATUS1 nchar(4000),@EXPORTSTATUS2'需要参数'@EXPORTSTATUS1',但没有提供。"

我把它修好了。我必须添加else语句来绕过if返回false的错误。解决方案如下。谢谢你的帮助!!!!!!!

string connectionStringlast = "Data Source=SWDB10DSQL;Initial Catalog=BillingUI;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework";
        using (SqlConnection _conman = new SqlConnection(connectionStringlast))
        {
            _conman.Open();
            //opens the predefined connection _con
            string exportdate = DateTime.Now.ToString("M/d/yyyy  h:mm:ss tt");
            string exportstatus = "Exported";
            string inserttheString = @"INSERT INTO EXPORT_TRACKER
                    (EXPORT_DATE, T1STATUS, T2STATUS, T3STATUS, T4STATUS, T5STATUS, T6STATUS, T7STATUS, T8STATUS, T9STATUS, T10STATUS)
                    VALUES(@EXPORTDATE, @EXPORTSTATUS1, @EXPORTSTATUS2, @EXPORTSTATUS3, @EXPORTSTATUS4, @EXPORTSTATUS5, @EXPORTSTATUS6, @EXPORTSTATUS7, @EXPORTSTATUS8, @EXPORTSTATUS9, @EXPORTSTATUS10)";
            //defines the sql insert query to be performed 
            using (SqlCommand cmd5 = new SqlCommand(inserttheString, _conman))
            {
                cmd5.Parameters.Add("@EXPORTDATE", SqlDbType.NChar);
                cmd5.Parameters["@EXPORTDATE"].Value = exportdate;
                cmd5.Parameters.Add("@EXPORTSTATUS1", SqlDbType.NChar);
                cmd5.Parameters.Add("@EXPORTSTATUS2", SqlDbType.NChar);
                cmd5.Parameters.Add("@EXPORTSTATUS3", SqlDbType.NChar);
                cmd5.Parameters.Add("@EXPORTSTATUS4", SqlDbType.NChar);
                cmd5.Parameters.Add("@EXPORTSTATUS5", SqlDbType.NChar);
                cmd5.Parameters.Add("@EXPORTSTATUS6", SqlDbType.NChar);
                cmd5.Parameters.Add("@EXPORTSTATUS7", SqlDbType.NChar);
                cmd5.Parameters.Add("@EXPORTSTATUS8", SqlDbType.NChar);
                cmd5.Parameters.Add("@EXPORTSTATUS9", SqlDbType.NChar);
                cmd5.Parameters.Add("@EXPORTSTATUS10", SqlDbType.NChar);

                if (System.IO.File.Exists("C:''BillingExport''tbl1_export.txt"))
                {
                    cmd5.Parameters["@EXPORTSTATUS1"].Value = exportstatus;
                }
                else
                {
                    cmd5.Parameters["@EXPORTSTATUS1"].Value = "";
                }
                if (System.IO.File.Exists("C:''BillingExport''tbl2_export.txt"))
                {
                    cmd5.Parameters["@EXPORTSTATUS2"].Value = exportstatus;
                }
                else
                {
                    cmd5.Parameters["@EXPORTSTATUS2"].Value = "";
                }
                if (System.IO.File.Exists("C:''BillingExport''tbl3_export.txt"))
                {
                    cmd5.Parameters["@EXPORTSTATUS3"].Value = exportstatus;
                }
                else
                {
                    cmd5.Parameters["@EXPORTSTATUS3"].Value = "";
                }
                if (System.IO.File.Exists("C:''BillingExport''tbl4_export.txt"))
                {
                    cmd5.Parameters["@EXPORTSTATUS4"].Value = exportstatus;
                }
                else
                {
                    cmd5.Parameters["@EXPORTSTATUS4"].Value = "";
                }
                if (System.IO.File.Exists("C:''BillingExport''tbl5_export.txt"))
                {
                    cmd5.Parameters["@EXPORTSTATUS5"].Value = exportstatus;
                }
                else
                {
                    cmd5.Parameters["@EXPORTSTATUS5"].Value = "";
                }
                if (System.IO.File.Exists("C:''BillingExport''tbl6_export.txt"))
                {
                    cmd5.Parameters["@EXPORTSTATUS6"].Value = exportstatus;
                }
                else
                {
                    cmd5.Parameters["@EXPORTSTATUS6"].Value = "";
                }
                if (System.IO.File.Exists("C:''BillingExport''tbl7_export.txt"))
                {
                    cmd5.Parameters["@EXPORTSTATUS7"].Value = exportstatus;
                }
                else
                {
                    cmd5.Parameters["@EXPORTSTATUS7"].Value = "";
                }
                if (System.IO.File.Exists("C:''BillingExport''tbl8_export.txt"))
                {
                    cmd5.Parameters["@EXPORTSTATUS8"].Value = exportstatus;
                }
                else
                {
                    cmd5.Parameters["@EXPORTSTATUS8"].Value = "";
                }
                if (System.IO.File.Exists("C:''BillingExport''tbl9_export.txt"))
                {
                    cmd5.Parameters["@EXPORTSTATUS9"].Value = exportstatus;
                }
                else
                {
                    cmd5.Parameters["@EXPORTSTATUS9"].Value = "";
                }
                if (System.IO.File.Exists("C:''BillingExport''tbl10_export.txt"))
                {
                    cmd5.Parameters["@EXPORTSTATUS10"].Value = exportstatus;
                }
                else
                {
                    cmd5.Parameters["@EXPORTSTATUS10"].Value = "";
                }
                cmd5.ExecuteNonQuery();
                //executes to insert query
                _conman.Close();
                //closes the no longer in use database connection
            }
        }
        return View();
    }

必须声明标量变量@EXPORTSTATUS1"

此处指定的文件C:''BillingExport''tbl1_export.txt可能不存在或路径不正确,因此未添加参数

我仍然会添加参数,但没有值:

cmd5.Parameters.Add("@EXPORTSTATUS1", SqlDbType.NChar);
if (System.IO.File.Exists("C:''BillingExport''tbl1_export.txt"))
{
     cmd5.Parameters["@EXPORTSTATUS1"].Value = exportstatus;
}