我是C#的新手,我在Java方面有一些基本知识,但我无法让这些代码正常运行.
它只是一个基本的计算器,但是当我运行程序时,VS2008给了我这个错误:

我做了几乎相同的程序,但在使用JSwing的java中,它工作得很好.
这是c#的形式:

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;
namespace calculadorac
{
public partial class Form1 : Form
{
int a, b, c;
String resultado;
public Form1()
{
InitializeComponent();
a = Int32.Parse(textBox1.Text);
b = Int32.Parse(textBox2.Text);
}
private void button1_Click(object sender, EventArgs e)
{
add();
result();
}
private void button2_Click(object sender, EventArgs e)
{
substract();
result();
}
private void button3_Click(object sender, EventArgs e)
{
clear();
}
private void add()
{ …Run Code Online (Sandbox Code Playgroud) 抛出FormatException我遇到了类似的问题.我的代码很简单:
void Orders_OnSubmit()
{
DateTime CurrentTime = DateTime.Now;
rtbAdd( "Submitted on " + CurrentTime.Date.ToString("MM/dd/yyyy") + " at " + CurrentTime.TimeOfDay.ToString("HH:mm:ss.ffffff") );
}
void rtbAdd(String S)
{
DefaultDelegate del = delegate()
{
rtb.AppendText(S + "\n");
};
this.Invoke(del);
}
Run Code Online (Sandbox Code Playgroud)
这有什么不对?这是一个线程问题吗?
在这个DatePicker中,如果我输入无效日期,如
1/1/20001(输入密钥),
我会得到以下异常
mscorlib.dll中发生了'System.FormatException'类型的第一次机会异常
附加信息:字符串未被识别为有效的DateTime.
但看起来这是由绑定引发的,我找不到处理它的方法.
在调试中,我在屏幕上得到了上述内容
打开堆栈跟踪,它说在SearchItem.Date1上抛出错误
但是问题是在那种情况下实际上没有调用get
如果我输入一个有效的日期,例如1/1/2000,我会看到设置和调用.
如果我输入无效日期,则无需设置调用.
我输入和无效日期并按输入或丢失焦点只是恢复到前一个日期并且不会抛出异常.如果先前的日期为null,则它将恢复为null.
这对我来说是一个关键问题,如果用户输入有效日期然后输入无效日期,则DatePicker只会恢复到上一个有效日期.因此用户不知道日期没有改变.
问题是如何处理无效的日期异常?
<DatePicker Width="140" DisplayDateStart="1/1/1990" DisplayDateEnd="12/31/2020"
SelectedDate="{Binding Path=Date1, Mode=TwoWay, ValidatesOnExceptions=True, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"/>
Run Code Online (Sandbox Code Playgroud)
如果我拿出来
, ValidatesOnExceptions=True, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged
Run Code Online (Sandbox Code Playgroud)
没有什么变化
private DateTime? date1;
public DateTime? Date1
{
get
{
try
{
return date1;
}
catch (Exception ex)
{
return (DateTime?)null;
throw;
}
}
set
{
if (date1 != value)
{
date1 = value;
NotifyPropertyChanged("Date1");
}
}
}
Run Code Online (Sandbox Code Playgroud) 有没有已知的原因FormatException不继承ArgumentException?无效格式似乎是一个非常具体的参数无效的情况,类似于ArgumentOutOfRangeException.
当方法调用中的参数格式与相应的形式参数类型的格式不匹配时,抛出FormatException.例如,如果方法指定一个
String由两个带嵌入句点的数字组成的参数,则将只包含两位数的相应字符串参数传递给该方法将导致抛出FormatException.
听起来像是ArgumentException我的一个或派生课程的场景.
所有这些意味着您无法FormatException在较大的ArgumentException异常系列下处理,也无法识别导致异常的参数.
这个看似不合时宜的例外是否有任何理由存在?
我有一个webservice,其方法是通过我的javascript中的xmlhttprequest对象调用的.该方法接受datetime参数,该参数随后转换为字符串并针对数据库运行以执行计算.
我从m_txtDateAdd获取值并发送xmlHttprequest
<asp:textbox id=m_txtDateAdd tabIndex=4 runat="server" Width="96px" Text="<%# Today %>">
</asp:textbox>
Run Code Online (Sandbox Code Playgroud)
它有一个验证器
<asp:CustomValidator id="m_DateAddValidator" runat="server" ErrorMessage="Please Enter a Valid Date" ControlToValidate="m_txtDateAdd">●</asp:CustomValidator>
Run Code Online (Sandbox Code Playgroud)
我的webmethod看起来像这样
[WebMethod]
public decimal GetTotalCost(DateTime transactionDate)
{
String sqlDateString = transactionDate.Year+"/"+transactionDate.Month+"/"+transactionDate.Day;
Run Code Online (Sandbox Code Playgroud)
我使用sqlDateString作为我发送到数据库的commandtext的一部分.它是一个遗留应用程序及其内联sql,所以我没有自由设置存储过程,并在我的代码后面创建和分配参数.这有效率的90%.在m_txtDateAdd的onchange事件上调用webservice.我一次又一次地从服务器得到的响应是
System.ArgumentException:无法将25/06/2009转换为System.DateTime.System.ArgumentException:无法将25/06/2009转换为System.DateTime.
参数名称:type ---> System.FormatException:String未被识别为有效的DateTime.
at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
at System.DateTime.Parse(String s, IFormatProvider provider)
at System.Convert.ToDateTime(String value, IFormatProvider provider)
at System.String.System.IConvertible.ToDateTime(IFormatProvider provider)
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
at System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type)
--- End of inner exception stack trace ---
at System.Web.Services.Protocols.ScalarFormatter.FromString(String value, …Run Code Online (Sandbox Code Playgroud) 我正在尝试将此字符串转换为double
Convert.ToDouble("1.12");
这是输出
System.FormatException未处理.
我应该这样做吗?
public static double ConvertToDouble(string ParseVersion)
{
double NewestVersion;
try
{
NewestVersion = Convert.ToDouble(ParseVersion);
}
catch
{
ParseVersion = ParseVersion.Replace('.', ',');
NewestVersion = Convert.ToDouble(ParseVersion);
}
return NewestVersion;
}
ConvertToDouble("1.12");
Run Code Online (Sandbox Code Playgroud)
或者是否有更简单的解决方案?
.NET中的FormatException是否相当于Java中的NumberFormatException?
我有这样的现有功能
public int sFunc(string sCol , int iId)
{
string sSqlQuery = " select " + sCol + " from TableName where ID = " + iId ;
// Executes query and returns value in column sCol
}
Run Code Online (Sandbox Code Playgroud)
该表有四列存储整数值,我使用上面的函数分别读取它们.
现在我将其转换为Entity Framework.
public int sFunc(string sCol , int iId)
{
return Convert.ToInt32(TableRepository.Entities.Where(x => x.ID == iId).Select(x => sCol ).FirstOrDefault());
}
Run Code Online (Sandbox Code Playgroud)
但上面的函数返回错误
输入字符串格式不正确
因为它返回列名本身.
我不知道如何解决这个问题,因为我对EF很新.
任何帮助,将不胜感激
谢谢
将string.format的常用格式(例如datetime)拉成可访问的常量的优雅方法是什么?
理想情况下,我想做类似以下的事情,但是当我尝试使用此代码时,我收到以下错误.
var now = DateTime.Now;
var format = "yyyy-MM-dd";
Console.WriteLine(string.Format("The date is {1:{0}}", format, now));
Run Code Online (Sandbox Code Playgroud)
[System.FormatException:输入字符串的格式不正确.]在Program.Main():第9行
这背后的原因是某些API需要特定的日期时间格式.我希望能够引用一个地方来获得这种格式,这样所有调用都可以.
我意识到以下内容会起作用,但它看起来并不优雅.
Console.WriteLine(string.Format("The date is {1:" + format + "}", format, now));
Run Code Online (Sandbox Code Playgroud) 我用Jackson解析的输入流包含纬度和经度值,例如:
{
"name": "product 23",
"latitude": "52,48264",
"longitude": "13,31822"
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,服务器使用逗号作为产生的小数分隔符InvalidFormatException.由于我无法改变服务器输出格式,我想教杰克逊ObjectMapper处理这些案件.这是相关代码:
public static Object getProducts(final String inputStream) {
ObjectMapper objectMapper = new ObjectMapper();
try {
return objectMapper.readValue(inputStream,
new TypeReference<Product>() {}
);
} catch (UnrecognizedPropertyException e) {
e.printStackTrace();
} catch (InvalidFormatException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (JsonParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
这是POJO:
import com.fasterxml.jackson.annotation.JsonProperty;
public class Product { …Run Code Online (Sandbox Code Playgroud) java formatexception jackson decimalformat json-deserialization
formatexception ×10
c# ×5
.net ×2
exception ×2
java ×2
sql ×2
asp.net ×1
date-format ×1
datepicker ×1
datetime ×1
double ×1
jackson ×1
web-services ×1
wpf ×1