如果这个问题已经被问过和回答过,请原谅我。我只是花了一些时间搜索我的问题,但似乎找不到。
无论如何,我在 Visual Studio 2010 和 MS SQL Server 中工作。我已经创建了数据库,现在我只是在处理前端的事情。无论如何,通过我的搜索,我发现 nchar 不是 C# 数据类型,这很好,但它似乎不会为我将其转换为字符串。
Convert.ToString(reader["SerialNum"].ToString().Trim());
这是给我一个错误的部分。它说“无法将‘string’隐式转换为‘int’。”
有人知道解决整个 nchar 问题的方法吗?
提前致谢!
艾莉
[编辑]: 所以这就是整个方法...虽然我认为这里的任何其他内容都不会真正有帮助。
private Row PopulateRow(SqlDataReader pReader)
{
Row CurrentRow = new Row();
CurrentRow.sTransNum = Convert.ToInt32(reader["STransNum"].ToString().Trim());
CurrentRow.serialNum = Convert.ToString(reader["SerialNum"].ToString().Trim());
CurrentRow.itemTypeID = Convert.ToInt32(reader["ItemTypeID"].ToString().Trim());
CurrentRow.fromLocation = Convert.ToInt32(reader["FromLocation"].ToString().Trim());
CurrentRow.toLocation = Convert.ToInt32(reader["toLocation"].ToString().Trim());
CurrentRow.units = Convert.ToInt32(reader["Units"].ToString().Trim());
CurrentRow.serialMoveDate = Convert.ToDateTime(reader["SerialMoveDate"].ToString().Trim());
CurrentRow.moveTypeID = Convert.ToInt32(reader["MoveTypeID"].ToString().Trim());
CurrentKey.sTransNum = CurrentRow.sTransNum;
CurrentRow.CompleteState = "OK";
return CurrentRow;
}
最佳答案
可能应该使用 reader.GetString(ordinal)
reader.GetString(reader.GetOrdinal("SerialNum"))
如果结果中的值可以为空,则使用 reader.IsDbNull(ordinal)
int ordinal = reader.GetOrdinal("SerialNum");
serial = reader.IsDbNull(ordinal) ? null : reader.GetString(ordinal);
关于c# - 如何在 C# 中将 nchar 转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10248238/