管理销售

时间:2014-04-29 06:39:28

标签: c# sql winforms

我的代码需要保存WinForm Vendita中捕获的所有信息。 我正在使用以下代码,但它不会将信息保存在数据库中,并且会在标准表达式中显示错误,指示数据类型不匹配。

我使用以下代码:

    System.Data.OleDb.OleDbCommand cmd1 = new System.Data.OleDb.OleDbCommand();
    System.Data.OleDb.OleDbCommand cmd2 = new System.Data.OleDb.OleDbCommand();
    System.Data.OleDb.OleDbCommand cmd3 = new System.Data.OleDb.OleDbCommand();
    cmd1.CommandType = System.Data.CommandType.Text;
    cmd2.CommandType = System.Data.CommandType.Text;

    cmd1.CommandText = "INSERT INTO FattureVoci ([IDVoce],[CodiceArticolo],[Descrizione],[Quantita],[PrezzoUnitario]) VALUES (@Id,@Prod,@Descr,@Qta,@Prezzo)";
    cmd2.CommandText = "INSERT INTO Fatture ([Intestatario],[PartitaIVA]) VALUES (@Intest,@Iva)"; 

    cmd1.Parameters.AddWithValue("@Prod", this.Prodotto.Text);

    cmd1.Parameters.AddWithValue("@Iva", Convert.ToInt32(this.PartitaIVA.Text));
    cmd1.Parameters.AddWithValue("@Descr", this.Descrizione.Text);
    cmd1.Parameters.AddWithValue("@Qta", Convert.ToInt32(this.Qta.Text));
    cmd1.Parameters.AddWithValue("@Intest", this.Intestatario.Text);
    cmd1.Parameters.AddWithValue("@Id", Convert.ToInt32(this.id.Text));
    cmd1.Parameters.AddWithValue("@Prezzo", Convert.ToInt32(this.Prezzo.Text));


    cmd1.Connection = conn;
    conn.Open();
    cmd1.ExecuteNonQuery();
    cmd2.ExecuteNonQuery();
    conn.Close();
}

Error

1 个答案:

答案 0 :(得分:2)

IvaInterest属于cmd2而非cmd1。改变这个:

cmd1.Parameters.AddWithValue("@Iva", Convert.ToInt32(this.PartitaIVA.Text));
cmd1.Parameters.AddWithValue("@Intest", this.Intestatario.Text);

要:

cmd2.Parameters.AddWithValue("@Iva", Convert.ToInt32(this.PartitaIVA.Text));
cmd2.Parameters.AddWithValue("@Intest", this.Intestatario.Text);

此外,您使用的是OleDb,所以可能是Ms:您应该以正确的顺序提供参数