.. ilk çalıştırma baştaOpenFileDialog sorunu i kazanmak şeklinde OpenFileDialog ile bu sorun var
private void btnAllegato_Click(object sender, EventArgs e)
{
try
{
using (OpenFileDialog openFileDialog1 = new OpenFileDialog())
{
string path = string.Empty;
openFileDialog1.Title = "Seleziona richiestaIT (PDF)..";
openFileDialog1.Filter = ("PDF (.pdf)|*.pdf");
openFileDialog1.FilterIndex = 1;
openFileDialog1.FileName = "";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//salva l'intero path
path = openFileDialog1.FileName;
//nome file + estensione
string temp = openFileDialog1.SafeFileName;
//elimina l'estensione del file con IgnoreCase -> case Unsensitive
temp = Regex.Replace(temp, ".pdf", " ", RegexOptions.IgnoreCase);
//datatime + replace
string timenow = System.DateTime.Now.ToString();
//replace data da gg//mm/aaaa ss:mm:hh -----> ad gg-mm-aaaa_ss-mm-hh
timenow = timenow.Replace(":", "-").Replace("/", "-");//.Replace(" ", " ");
//effettua una copia dal path origine alla cartella nel NAS
_url = @"\\192.168.5.7\dati\SGI\GESTIONE IT\RichiesteIT\" + temp + timenow + ".pdf";
this.Cursor = Cursors.WaitCursor;
System.IO.File.Copy(path, _url);
this.Cursor = Cursors.Default;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
... tüm ok ... Ama ikinci bir tıklama ile ... sürecini btn için döngüye git .. OpenFileDialog açık ama toplam beyaz ...
Bence bu bir kaynak atma sorunudur .. ama nasıl çözeceğimi bilmiyorum.
... ... @EDIT birkaç denemeden sonra
... Sorunun ben Botton İsminizi girin >> üzerine clik sonra olduğunu fark etti. İlk kez iyi çalışıyorum ama btnInserisci i döngüsünde ikinci kez tıklattığımda ... btnAllegato.
Kod btnInserisci:
private int _IDRichiedente = -1; private string _data = String.Empty; private string _url = string.Empty;
sınıfın bir alanları olduğunu
private void btnInserisci_Click(object sender, EventArgs e)
{
try
{
if ((_IDRichiedente != -1) && (_data != string.Empty) && (_url != string.Empty))
{
//messageBox
MessageBox.Show(_url);
QueryAssist qa = new QueryAssist();
string query = "INSERT INTO RICHIESTA_IT(ID_Risorsa, descrizione_richiesta, modulo_pdf, data_richiesta) VALUES('" + _IDRichiedente + "', '" + txtBreveDescrizione.Text + "', '" + _url + "', '" + _data + "');";
MessageBox.Show(query);
qa.runQuery(query);
// qa.runQuery("INSERT INTO RICHIESTA_IT (ID_Risorsa, data_richiesta) VALUES ('" + _IDRichiedente + "','" + _data + "');");
}
else
{
MessageBox.Show("Selezionare il richiedente,data o allegato!");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
.
QueryAssist bir bağlantı oluşturan, bir sorguyu çalıştıran ve bağlantısını kesen kişisel sınıfımdır. Kodu:
class QueryAssist
{
System.Data.OleDb.OleDbConnection _OleDBconnection;
public QueryAssist()
{
this._OleDBconnection = null;
}
//riferimento di connessione al db
private bool connectionDB()
{
string connection = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=\"\\\\192.168.5.7\\dati\\Scambio\\Sviluppo\\Impostazioni temporanea db Censimento\\CensimentoIT.accdb\"";
try
{
_OleDBconnection = new System.Data.OleDb.OleDbConnection(connection);
_OleDBconnection.Open();
return true;
}
catch(Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
return false;
}
}
private void disconnectDB()
{
try
{
_OleDBconnection.Close();
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
}
public System.Data.DataTable runQuery(string query)
{
try
{
if (connectionDB())
{
System.Data.DataTable dataTable = new System.Data.DataTable();
System.Data.OleDb.OleDbCommand sqlQuery = new System.Data.OleDb.OleDbCommand(query, _OleDBconnection);
System.Data.OleDb.OleDbDataAdapter adapter = new OleDbDataAdapter(sqlQuery);
adapter.Fill(dataTable);
disconnectDB();
return dataTable;
}
}
catch(Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
return null;
}
public int countRowsQueryResult(string query)
{
try
{
if (connectionDB())
{
System.Data.DataTable dataTable = new System.Data.DataTable();
System.Data.OleDb.OleDbCommand sqlQuery = new System.Data.OleDb.OleDbCommand(query, _OleDBconnection);
System.Data.OleDb.OleDbDataAdapter adapter = new OleDbDataAdapter(sqlQuery);
adapter.Fill(dataTable);
disconnectDB();
return dataTable.Rows.Count;
}
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
return -1;
}
}
}
Maalesef ingilizcem
Uygulamanızda herhangi bir GDI + 'veya' Win32' api kodu var mı? –
sadece pencere formunda ... – rul3z
Program.cs'inizin üzerinde [STAThread] özniteliğiniz var mı? –