将标签文本字符串转换为整数 [英] Converting a Label Text String into Integer

查看:103
本文介绍了将标签文本字符串转换为整数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

亲爱的所有人,



我正在尝试将Label Text字符串转换为Integer数据类型并将其存储在SQL数据库中。我已经在今天早上之前在我的程序中实现并运行了它。但后来我不得不将整个项目从旧的.cs复制到新的.cs,现在它正在抛出错误。



我的代码是:



Dear All,

I am trying to convert a Label Text string into Integer datatype and store it in SQL Database. I had it implemented and running in my program just fine before this morning. But then I had to copy paste whole project from old .cs to new .cs, and now it is throwing error.

My code is:

protected void btnUpdate_Click(object sender, EventArgs e)
{
    MultiView1.SetActiveView(vGrid);

    using (SqlConnection con = new SqlConnection("Data Source=MEHDI-PC\\SQLEXPRESS;Initial Catalog=PIMS;Integrated Security=True"))
    {
        using (SqlCommand cmd = new SqlCommand())
        {
            string sql = "UPDATE dbo.Documents SET Ref = @Ref, Subject = @Subject, Src = @Src, Dst = @Dst, Medium = @Medium, Date_Printed = @Date_Printed, Date_Received = @Date_Received, Document_Type = @Document_Type,Action_Required = @Action_Required, Due_Date = @Due_Date, Actual_Date = @Actual_Date, Content = @Content, Tag = @Tag, Issue_No = @Issue_No, Attachment = @Attachment, Notes = @Notes, Assigned_To = @Assigned_to, Reply_Ref = @Reply_Ref, Priority = @Priority, Status = @Status, Response = @Response  WHERE DocumentsID = @DocumentsID ";

            cmd.Connection = con;
            cmd.CommandText = sql;

            cmd.Parameters.Add(new SqlParameter("@Ref", txtRef.Text));
            cmd.Parameters.Add(new SqlParameter("@Subject", txtSubject.Text));
            cmd.Parameters.Add(new SqlParameter("@Src", ddlSource.Text));
            cmd.Parameters.Add(new SqlParameter("@Dst", ddlDestination.Text));
            cmd.Parameters.Add(new SqlParameter("@Medium", ddlMedium.Text));
            cmd.Parameters.Add(new SqlParameter("@Date_Printed", txtDatePrinted.Text == "" ? DBNull.Value : (object)txtDatePrinted.Text));
            cmd.Parameters.Add(new SqlParameter("@Date_Received", txtDateReceived.Text == "" ? DBNull.Value : (object)txtDateReceived.Text));
            cmd.Parameters.Add(new SqlParameter("@Document_Type", ddlDocumentType.Text));
            cmd.Parameters.Add(new SqlParameter("@Action_Required", cbxAction.Checked));
            cmd.Parameters.Add(new SqlParameter("@Due_Date", txtDueDate.Text == "" ? DBNull.Value : (object)txtDueDate.Text));
            cmd.Parameters.Add(new SqlParameter("@Actual_Date", txtActualDate.Text == "" ? DBNull.Value : (object)txtActualDate.Text));
            cmd.Parameters.Add(new SqlParameter("@Content", txtContent.Text));
            cmd.Parameters.Add(new SqlParameter("@Tag", txtTag.Text));
            cmd.Parameters.Add(new SqlParameter("@Issue_No", txtIssue.Text));
            cmd.Parameters.Add(new SqlParameter("@Attachment", txtAttachment.Text));
            cmd.Parameters.Add(new SqlParameter("@Notes", txtNotes.Text));
            cmd.Parameters.Add(new SqlParameter("@Assigned_To", ddlAssignedTo.Text));
            cmd.Parameters.Add(new SqlParameter("@Reply_Ref", txtReplyRef.Text));
            cmd.Parameters.Add(new SqlParameter("@Priority", ddlPriority.Text));
            cmd.Parameters.Add(new SqlParameter("@Status", ddlStatus.Text));
            cmd.Parameters.Add(new SqlParameter("@Response", ddlResponse.Text));
            cmd.Parameters.Add(new SqlParameter("@DocumentsID", Int32.Parse(lblSet.Text)));

            // cmd.CommandType = CommandType.StoredProcedure;
            con.Open();
            //dataset object to get all select statement results
            //DataSet ds = new DataSet();

            //sql dataadoptor to fill dataset
            cmd.ExecuteNonQuery();
        }
        if (con.State == ConnectionState.Open)
        {
            con.Close();
        }
    }
}







投掷一个以下行中的错误:




It is throwing an error on the following Line:

cmd.Parameters.Add(new SqlParameter("@DocumentsID", Int32.Parse(lblSet.Text)));



错误消息:


Error Message:

Input string was not in a correct format.



我们非常感谢任何帮助。



亲切问候。


Any help would be much appreciated.

Kind regards.

推荐答案

是的,这个错误很明显。您不能转换不表示 32位有符号整数的字符串。您可以使用 Int32.TryParse方法 [ ^ ]。

试试这个:

Yes, this error is obvious. You cannot convert a string which does not represents a 32-bit signed integer . You can use Int32.TryParse Method[^].
Try this:
int value;
bool result = Int32.TryParse(lblSet.Text.Trim(), out value);
//If converted
if(result)
{
    //Add the parameter
    cmd.Parameters.Add(new SqlParameter("@DocumentsID", value));
}







- Amit


您可以查看以下链接

将标签文本转换为int [ ^ ]
You can have a look at below link
convert label text to int[^]


它在以下行引发错误:

It is throwing an error on the following Line:
cmd.Parameters.Add(new SqlParameter("@DocumentsID", Int32.Parse(lblSet.Text)));





[lblSet.Text]中的日期不是数字大于Int32最大值。确保你正在插入正确的Int32整数,并且[lblSet.Text]

中没有任何空格或使用TryParse。





Date in your [lblSet.Text] is not numbers aur greater then Int32 max value. make sure your are inserting correct Int32 integer and there is no space are any extra character in your [lblSet.Text]
or use TryParse.

int customer_ID=0;
int.TryParse(lblSet.Text, out customer_ID) ? customer_ID : -1;


这篇关于将标签文本字符串转换为整数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆