将标签文本字符串转换为整数 [英] Converting a Label Text String into Integer
问题描述
亲爱的所有人,
我正在尝试将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));
}
您可以查看以下链接
将标签文本转换为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屋!