[英]“Input string was not in a correct format.”
我正在开发一个项目,我在其中有一个表单,通过该表单我可以在列表视图中编辑可用的问题。 每当我从列表视图中选择一行并单击“修改”按钮时,列表视图上方的文本框会加载问题及其选项。 这意味着当我在列表视图中选择一行并单击“修改”按钮时,问题会将其自身加载到文本框中。 我在那里编辑问题并单击“保存”以保存更改,但我无法访问文本框中的数据。 它说{"Input string was not in a correct format."}
。
我的表格frmFormWizard
的'编辑'按钮的代码如下:
frmFormWizard.cs代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.Sql;
using System.Data.SqlClient;
namespace SurveyBuilder
{
public partial class frmFormWizard : Form
{
int intPanelNumber = 1;
Boolean blnCancel = false;
//int intFlag = 1;
public frmFormWizard()
{
InitializeComponent();
}
...
private void btnEditTwoOrMoreOptions_Click(object sender, EventArgs e)
{
int QuestionID;
string sql;
QuestionID = Convert.ToInt32(lvTwoOrMoreOptions.SelectedItems[0].Text.ToString());
{
SqlConnection cn = new SqlConnection();
SqlCommand rs = new SqlCommand();
SqlDataReader sdr = null;
clsConnection clsCon = new clsConnection();
clsCon.fnc_ConnectToDB(ref cn);
sql = "";
sql += "SELECT * FROM SurveyQuestionLog WHERE SurveyQuestionLog.QuestionLogID = "+ QuestionID +"";
//sql += "SELECT * FROM SurveyQuestionLog";
rs.Connection = cn;
rs.CommandText = sql;
sdr = rs.ExecuteReader();
while (sdr.Read())
{
txtTwoOrMoreQuestions.Text = (string)sdr["Question"];
txtOption1.Text = (string)sdr["Choice1"];
...
}
sdr.Close();
rs = null;
cn.Close();
}
}
每当我尝试编译代码时,它会说"{"Input string was not in a correct format."}"
并且此错误显示在以下行:
QuestionID = Convert.ToInt32(lvTwoOrMoreOptions.SelectedItems[0].Text.ToString());
请让我知道我做错了什么。
它看起来像文本中包含一些空格。 使用
lvTwoOrMoreOptions.SelectedItems [0] .Text.ToString()。修剪()
并转换为int32。
希望这段代码能解决你
来自评论
如果您的ListView处于报告模式(即它看起来像一个网格),那么您将需要SubItems属性。 lvTwoOrMoreOptions.SelectedItems
获取列表视图中的每个项目 - SubItems为您提供列。 所以lvTwoOrMoreOptions.SelectedItems[0].SubItems[0]
是第一个列值,
请更改您的代码,如下所示。
int QuestionID;
bool IsIntValue = Int32.TryParse("YOUR-VARIABLE", out QuestionID);
if (IsIntValue)
{
// YOUR CODE HERE
}
希望我会帮助你。
每当我尝试编译代码时,它会说“{”输入字符串的格式不正确。“}”
编译时不会出现此错误。
现在出现错误是因为您尝试将无效字符串解析为整数。 要以安全的方式做到这一点,你应该这样做
int questionID;
if(int.TryParse(vTwoOrMoreOptions.SelectedItems[0].Text.ToString(),out questionID))
{
//success code
}
else
{
//failure code
}
它看起来无论该文本是否包含一些无法转换为整数的字符,如空格,字母,特殊字符等。检查下拉列表中的内容如下所示
lvTwoOrMoreOptions.SelectedItems[0].Text.ToString();
看看是否是这种情况。
您可能正在尝试访问控件内的控件,可能是GridView或DetailsView。
尝试使用这样的东西:
empsalary = Convert.ToInt32(((TextBox)DetailsView1.Rows[1].Cells[1].Controls[0]).Text);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.