你好,我在这个 c# 代码上有一个错误,我在代码上有一个异常:MessageBox.Show("Salto sulla query 3 "+ex),但我不明白为什么,我加载了下面生成的异常图像,你能帮帮我谢谢。
MessageBox.Show("Aggiorno Articoli ");
//APRO LA CONNESSIONE AL FILE
dbConn = new OleDbConnection(@"Provider = Microsoft.Jet.OLEDB.4.0; Data Source=" + dialog.FileName + "; Persist Security Info = False; Jet OLEDB:Database Password = " + textBoxPwdComet.Text + "; Mode = Share Deny None");
//APRO LA CONNESSIONE
SqlConnection conn = db.apriconnessione();
//CREO LA TABELLA TEMPORANEA
String QueryTemp = "CREATE TABLE TabellaTemp(CODMARCA varchar(MAX),CODART varchar(MAX),DESCR varchar(MAX),UM varchar(MAX),PRZNETTO money,PRZCASA money,DATAAGG datetime,);";
SqlCommand cmdTemp = new SqlCommand(QueryTemp, conn);
cmdTemp.ExecuteNonQuery();
//COPIA DEI DATI NELLA TABELLA TEMPORANEA
string query = "SELECT CODMARCA,CODART,DESCR,UM,PRZNETTO,PRZCASA,DATAAGG FROM ARTICOLI";
OleDbDataAdapter da = new OleDbDataAdapter(query, dbConn);
DataTable dt = new DataTable();
da.Fill(dt);
SqlBulkCopy bulk = new SqlBulkCopy(conn);
bulk.DestinationTableName = "TabellaTemp";
bulk.WriteToServer(dt);
//Setto tutti gli articoli come non disponbili(QUELLI COMET)
try
{
String Query2 = "Update Articolo set Stato = 'Nondisponibile' where Importato = 'COMET' ";
cmdTemp = new SqlCommand(Query2, conn);
cmdTemp.ExecuteNonQuery();
}
catch(Exception ex)
{
MessageBox.Show("Salto su query 2");
}
//Aggiorno gli articoli, quelli che non vengono aggiornati non sono più disponbili
try {
String Query3 = "Update Articolo set Articolo.Stato = 'Disponibile',Articolo.Prezzo = TabellaTemp.PRZNETTO,Articolo.PrezzoListino = TabellaTemp.PRZCASA,Articolo.DataAggiornamento = TabellaTemp.DATAAGG,Articolo.Descrizione = TabellaTemp.DESCR,Articolo.UM = TabellaTemp.UM from Articolo inner join TabellaTemp on TabellaTemp.CodMarca = Articolo.CodMarca and TabellaTemp.CODART = Articolo.CodArt where Articolo.Importato = 'COMET' ";
cmdTemp = new SqlCommand(Query3, conn);
cmdTemp.ExecuteNonQuery();
}
catch(Exception ex)
{
MessageBox.Show("Salto sulla query 3 "+ex);
}
//FINE COPIA DATI TABELLA TEMPORANEA
//ELIMINO LA TABELLA TEMPORANEA
QueryTemp = "DROP TABLE TabellaTemp";
cmdTemp = new SqlCommand(QueryTemp, conn);
cmdTemp.ExecuteNonQuery();
//FINE
conn.Close();
MessageBox.Show("Aggiornamento Articoli terminato!! ");
CaricamentoDataGridNonDisponbili();
例外:
您的查询超时,即:未在默认 30 秒内完成。将 CommandTimeout 设置为更高的值不是一个好习惯。要实际解决此问题,您需要为所有涉及的表提供表架构(如果有索引)。基于此,您需要使用适当的索引来优化查询以更快地运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句