Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#输入字符串的格式不正确_C#_String_Format - Fatal编程技术网

C#输入字符串的格式不正确

C#输入字符串的格式不正确,c#,string,format,C#,String,Format,我在读取curPLTNOREL=Convert.ToInt32(DT.Rows[m][“PLT\u NO\u REL”].ToString()的行上收到此错误如下。我正在使用的数据表有129707行Int m从120603开始。我在第一次迭代时收到这个错误。我尝试了几种将字符串转换为整数的不同方法,包括Int32.Parse(),但我收到了相同的错误。120603行上的PLT\u NO\u REL值为11 int curPLTNOREL = 0; for (int m = (my511.Get

我在读取
curPLTNOREL=Convert.ToInt32(DT.Rows[m][“PLT\u NO\u REL”].ToString()的行上收到此错误如下。我正在使用的数据表有129707行<代码>Int m
从120603开始。我在第一次迭代时收到这个错误。我尝试了几种将字符串转换为整数的不同方法,包括
Int32.Parse()
,但我收到了相同的错误。120603行上的
PLT\u NO\u REL
值为
11

int curPLTNOREL = 0;

for (int m = (my511.GetEnd(4) + divisions); m < DT.Rows.Count; m++)
{
    if (DT.Rows[m]["MAIL_TYPE"].ToString() != "UNQ")
    {
        curPLTNOREL = Convert.ToInt32(DT.Rows[m]["PLT_NO_REL"].ToString());
    }
    else
    {
        curPLTNOREL = 999;
    }
}
int curPLTNOREL=0;
对于(int m=(my511.GetEnd(4)+分段);m
我有点困惑。

尝试使用扩展方法。这允许将数据列显式转换为指定类型。如果强制转换失败,它将抛出异常

curPLTNOREL = int.Parse(DT.Rows[m].Field<string>("PLT_NO_REL"));
curPLTNOREL=int.Parse(DT.Rows[m].字段(“PLT\u NO\u REL”);
如果引发异常,请阅读异常消息。它将说明值是什么类型,以及为什么不能将其转换为int


您还需要检查该值是否可以为null,或者是否可以输入非数字。如果是这样,请使用TryParse()。

,因为它是nvarchar类型,那么它将返回一个字符串值。并且不能直接解析为int.

DT.Rows[m][“PLT\u NO\u REL”]。ToString()没有返回数字字符串。请放置断点并检查该值。该值可能不是数字值。它是空的吗?你可以试试Int32.TryParse()129707?您在内存中加载了太多行,考虑使用DATAARADER来代替什么是代码> Dt.Read[M] [ PPLTYNOYALRE ] < /COD>?将其转换为字符串,然后转换为int;为什么?如果是int,则将其转换为int而不是字符串。请记住,
DataRow
对象具有扩展方法。这应该有助于铸造。谢谢。当我尝试这样做时,它给出了InvalidCastException:指定的强制转换无效。请阅读整个错误。这包括任何内部异常。它应该说“不能从开始到结束”。对不起。System.InvalidCastException:指定的强制转换无效。在DSHS511DebtData_Console.Program.TrayDivisions()的System.Data.DataRowExtensions.Field[T](DataRow,String columnName)的System.Data.DataRowExtensions.Unbox`1.ValueField(对象值)在C:\Documents and Settin gs\brandonh\Desktop\DSHS511DebtData\u Console\Program.cs中:行640@BrandonHall如果该值以
nvarchar(6)
的形式存储在数据库中,那么将其转换为int将无法工作。这需要是一个字符串,然后是
Int.Parse
it。这对我来说太奇怪了,因为在这之前我已经使用了四次相同的代码块,直到这一点我才开始胡说八道。(我将数据表分为6部分。)也就是说,我将尝试更改原始字段的数据类型,看看这会给我带来什么。谢谢