-1

コードの実行時に問題が発生し、エラーが発生しました

入力文字列は、正しい形式ではありませんでした。

私のコードは次のとおりです。

protected void imgbtn_Save_Click(object sender, EventArgs e)
{

        OleDbCommand cmd = new OleDbCommand();
        cmd.CommandText = "update Companies set CompanyFName='" + txt_ComName.Text + "',CompanySName='" + txt_ShortName.Text + "',CompanyeMail='" + txt_email.Text + "',CompanyWebsite='" + txt_website.Text + "'where CompanyId='"+Convert.ToInt32(lblID.Text)+"'";
       // cmd.Parameters.AddWithValue("@CompanyId", Convert.ToInt32(lblID.Text));
        cmd.Connection = conn;
        OleDbDataAdapter da = new OleDbDataAdapter();
        da.UpdateCommand = cmd;

        cmd.ExecuteNonQuery();
        conn.Close();
        BindGridData();
        lblError.Font.Bold = true;
        lblError.Font.Size = 11;
        lblError.Text = "You have successfully modified the case!";

なぜこれが起こるのかわかりません。なぜこれが考えられるのか、誰かが私に提案できますか?

4

3 に答える 3

0

私はそれがこれだったと思います:

Convert.ToInt32(lblID.Text)

それは失敗していました。

lblID.Textが実際には整数でない場合、変換は失敗します。

TryParse無効な入力から回復できるように、使用する前に整数に変換することをお勧めします。

int localId = 0;
if (Int32.TryParse(lblID.Text, out localId)
{
    // Carry on
}
else
{
    // Deal with error - this could be just accepting null input as 0
}
于 2012-05-28T08:21:31.413 に答える
0

このコードによって例外が発生したようです。

Convert.ToInt32(lblID.Text)

デバッガーを実行し、lblID.Text-の値を監視します。実際にに変換できるかどうかint。名前はこれがであることを示唆しているLabelので、おそらくあなたは間違いを犯していて、(以前のデータによれば)text_IDのようなものでなければなりませんか?

于 2012-05-28T08:22:12.707 に答える
0
protected void imgbtn_Save_Click(object sender, EventArgs e)
{

        OleDbCommand cmd = new OleDbCommand();
        cmd.CommandText = "update Companies set CompanyFName='" + txt_ComName.Text + "',CompanySName='" + txt_ShortName.Text + "',CompanyeMail='" + txt_email.Text + "',CompanyWebsite='" + txt_website.Text + "'where CompanyId='"+lblID.Text+"'";
       // cmd.Parameters.AddWithValue("@CompanyId", Convert.ToInt32(lblID.Text));
        cmd.Connection = conn;
        OleDbDataAdapter da = new OleDbDataAdapter();
        da.UpdateCommand = cmd;

        cmd.ExecuteNonQuery();
        conn.Close();
        BindGridData();
        lblError.Font.Bold = true;
        lblError.Font.Size = 11;
        lblError.Text = "You have successfully modified the case!";
于 2012-05-28T15:50:06.713 に答える