【问题标题】:Cannot implicitly convert type 'string' to 'int' using addition [duplicate]无法使用加法将类型“string”隐式转换为“int”[重复]
【发布时间】:2014-11-26 16:31:09
【问题描述】:

如何修复错误?错误出现在 OrderNumber + AddOrderNumber 和 OrderNumber = sqlCmd1.ExecuteScalar().ToString();

谢谢这里是代码:

  int AddOrderNumber = 1;
        int OrderNumber;


        TextBox1.Text = OrderNumber + AddOrderNumber;
        TextBox2.Text = DateTime.Now.ToString("MM-dd-yyyy");
        TextBox3.Text = (string)Session["name"];


        using (SqlConnection con6 = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString))
        {

            //Grab Customer #
            using (SqlCommand sqlCmd1 = new SqlCommand { CommandText = "SELECT TOP 1 [OrderNumber] FROM [datarep].[dbo].[OrderHeader] Order By [OrderNumber] DESC", Connection = con6 })
            {
                con6.Open();
                object result = sqlCmd1.ExecuteScalar();

                if (result != null)
                {
                    OrderNumber = sqlCmd1.ExecuteScalar().ToString();

                }
                else
                {

                }
                con6.Close();
            }
        }

【问题讨论】:

  • 只需阅读编译器告诉您的内容。该错误准确地告诉您在这种情况下您需要知道的一切。
  • OrderNumber 是在数据库中存储为数字还是字符串?如果您打算对其进行数学计算,为什么要使用.ToString()
  • 其存储为 int
  • 只需从ExecuteScalar() 中删除.ToString()。根本没有理由转换数据库中的值。

标签: c# asp.net


【解决方案1】:
OrderNumber = sqlCmd1.ExecuteScalar().ToString();

OrderNumberint 类型,您正尝试将string 传递给该变量。在sqlCmd1.ExecuteScalar().ToString() 上执行Convert.ToInt32

OrderNumber = Convert.ToInt32(sqlCmd1.ExecuteScalar().ToString());

【讨论】:

    猜你喜欢
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 2022-08-17
    • 2015-03-25
    相关资源
    最近更新 更多