C# 自动将类型字符串中的值转换为布尔C
我正在解析xml文件并将其存储在OrderedDictionary数据类型中,xml标记名为“key”,其内部xml为“value”。在读取值并将其存储在OrderedDictionary变量中之前,一切正常 当我尝试使用KeyValuePair读取OrderedDictionary时,密钥费用的值显示为False,并抛出System.InvalidCastException。我知道这是一个类型转换问题,但我的问题是如何将存储为“string”的值转换为“boolean” 这是处理此任务的一小段代码:C# 自动将类型字符串中的值转换为布尔C,c#,.net,C#,.net,我正在解析xml文件并将其存储在OrderedDictionary数据类型中,xml标记名为“key”,其内部xml为“value”。在读取值并将其存储在OrderedDictionary变量中之前,一切正常 当我尝试使用KeyValuePair读取OrderedDictionary时,密钥费用的值显示为False,并抛出System.InvalidCastException。我知道这是一个类型转换问题,但我的问题是如何将存储为“string”的值转换为“boolean” 这是处理此任务的一小段
for (int j = 0; j < intXmlRecordFieldCount; j++) {
XmlTagname = xmlRootNode.ChildNodes[i].ChildNodes[j].Name.ToString().Trim();
xmlTagInnerValue = xmlRootNode.ChildNodes[i].ChildNodes[j].InnerXml.ToString().Trim();
DictXmlRecordColumns.Add(XmlTagname, xmlTagInnerValue);
}
foreach (KeyValuePair<string, string> kvp in DictXmlRecordColumns) {
string xmlTagName = kvp.Key;
string xmlInnerValue = kvp.Value;
DataRow[] resultset= dsResult.Tables[0].Select("ColumnName='"+xmlTagName+"'");
Console.WriteLine(resultset.Length);
if (Int32.Parse(xmlInnerValue) >= MinValue&& Int32.Parse(xmlInnerValue) <= MaxValue) {
string QueryParamColumnNames = null;
string QueryParamColumnValues = null;
foreach (KeyValuePair<string, string> SqlQueryParams in SqlQueryParams) {
QueryParamColumnNames += SqlQueryParams.Key.Trim() + ',';
QueryParamColumnValues += convertToSqlParams(SqlQueryParams.Value.Trim()) + ',';
}
QueryParamColumnValues = QueryParamColumnValues.TrimEnd(',');
sqlInsertQueries.Add("INSERT INTO " + dbTableName + " (" + QueryParamColumnNames + ") values( " + QueryParamColumnValues + ")");
}
这是我打算解析的示例xml
<studentrecords>
<STUDENT_RECORDS>
<RollNumber>1</RollNumber>
<Name>Akshay</Name>
<Gender>Male</Gender>
<Fees>900.00</Fees>
</STUDENT_RECORDS>
<STUDENT_RECORDS>
<RollNumber>2</RollNumber>
<Name>Alex</Name>
<Age>8</Age>
<Gender>Male</Gender>
<Fees>900.00</Fees>
</STUDENT_RECORDS>
</studentrecords>
有人能帮我解决这个问题吗
Edit1:我希望费用取为900.00,但如何将其转换为布尔值。有什么方法可以避免这种情况吗
Edit2:添加了XML示例通过修复代码行解决了它 DictXmlRecordColumns中的foreach KeyValuePair kvp到 foreach Dictionary在DictXmlRecord列中输入de,如中所述。 它成功了。
感谢您的时间和帮助。似乎您的数据库中有布尔列,您正在尝试插入字符串值False而不是布尔值False。您不需要在数字周围加引号,也不需要插入带有“0”和“1”的布尔来回避mistakes@SergeyBerezovskiy兄弟,但我没有任何疑问。我只是从一个变量到另一个变量。不涉及数据库操作QueryParamColumnNames=SqlQueryParams.Selectx=>x.Key.ToArray;string ColumnNames=string.Join,,QueryParamColumnNames;QueryParamColumnValues=SqlQueryParams.Selectx=>x.Value.ToString.ToArray;string ColumnValues=string.Join,,QueryParamColumnValues;您可以添加您解析的实际XML吗?没有它我们只能猜测它是什么样子。。。