L'opération doit utiliser une requête qui peut être mise à jour

levotre123 Messages postés 50 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 14 mai 2020 - Modifié par jee pee le 25/10/2013 à 19:42
pierrehenri56 Messages postés 63 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 29 octobre 2013 - 29 oct. 2013 à 13:55
Bonjour à tous
Encore une fois j'ai un problème avec mon code. En fait ayant fait en exécutant cette fonction je reçois en retour un message : L'opération doit utiliser une requête qui peut être mise à jour ... et je suis un peu bloqué


OleDbConnection MyConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\\DolphinDatabase.xls';Extended Properties=Excel 8.0;") ;
OleDbCommand myCommand = null ;



public void LoadFile()
{
try
{
OpenFileDialog o = new OpenFileDialog();
o.Filter = "Text files|*.txt";
o.ShowDialog();
ImportertextBox.Text = o.FileName;
if (ImportertextBox.Text == "")
{

}
else
{
string delimiter = "|";
string tablename = "Import_Temp";
DataSet dataset = new DataSet();
StreamReader sr = new StreamReader(ImportertextBox.Text);
dataset.Tables.Add(tablename);
dataset.Tables[tablename].Columns.Add("Evenement");
dataset.Tables[tablename].Columns.Add("Code agence");
dataset.Tables[tablename].Columns.Add("Compte");
dataset.Tables[tablename].Columns.Add("Clés");
dataset.Tables[tablename].Columns.Add("Devise");
dataset.Tables[tablename].Columns.Add("Intitulé");
dataset.Tables[tablename].Columns.Add("Agence");
dataset.Tables[tablename].Columns.Add("Formule");
dataset.Tables[tablename].Columns.Add("Serie");
dataset.Tables[tablename].Columns.Add("Date");
dataset.Tables[tablename].Columns.Add("Situation");
dataset.Tables[tablename].Columns.Add("Code agence demandeur");
dataset.Tables[tablename].Columns.Add("Type");
string alldata = sr.ReadToEnd();
string[] rows = alldata.Split("\r".ToCharArray());
foreach (string r in rows)
{
try
{
string[] items = r.Split(delimiter.ToCharArray());
dataset.Tables[tablename].Rows.Add(items);
this.dataGridView1.DataSource = dataset.Tables[0].DefaultView;


}
catch (Exception don)
{
MessageBox.Show(don.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
catch (Exception don)
{
MessageBox.Show(don.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
int rowscount = dataGridView1.RowCount;
label3.Text = (rowscount).ToString();

}

private void Ouvrirbutton_Click(object sender, EventArgs e)
{
LoadFile();

if (ImportertextBox.Text != "")
{
Importerbutton.Visible = true;
}
else
{
Importerbutton.Visible = false;
}

}

private void Importerbutton_Click(object sender, EventArgs e)
{
try
{

DialogResult result;
result = MessageBox.Show("En important les données, vous allez écraser les données existantes. voulez vous vraiment importer ce fichier?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (result == System.Windows.Forms.DialogResult.Yes)
{


int rowscount = dataGridView1.RowCount;

for (int i = 0; i < rowscount - 1; i++)
{
string selectbck = " SELECT * FROM [Backup$] WHERE evenement='" + dataGridView1.Rows[i].Cells[0].Value.ToString() + "'";
System.Data.OleDb.OleDbDataAdapter da = new OleDbDataAdapter(selectbck, MyConnection);
DataSet ds = new DataSet();
da.Fill(ds, "[Backup$]");
int returned = ds.Tables["[Backup$]"].Rows.Count;
if (returned == 0)
{
string value1 = dataGridView1.Rows[i].Cells[5].Value.ToString();
string value2 = dataGridView1.Rows[i].Cells[0].Value.ToString();
string value3 = dataGridView1.Rows[i].Cells[1].Value.ToString();
string value4 = dataGridView1.Rows[i].Cells[6].Value.ToString();
string value5 = dataGridView1.Rows[i].Cells[3].Value.ToString();
string value6 = dataGridView1.Rows[i].Cells[4].Value.ToString();
string value7 = dataGridView1.Rows[i].Cells[8].Value.ToString();
string value8 = dataGridView1.Rows[i].Cells[2].Value.ToString();
int id = i + 1;
MyConnection.Open();
string sql = "INSERT INTO [Users$] (ID,CardCode,Name,Category,BankNumber,BranchNumber,Custom1,Custom2,Custom3,Custom4,CustomBitmap,Pin) VALUES ('" + id + "','cjd','" + value1 + "','User','" + value2 + "','" + value3 + "','" + value4 + "','" + value5 + "','" + value6 + "','" + value7 + "','rototype.bmp','1234')";
myCommand = new OleDbCommand(sql,MyConnection);
myCommand.ExecuteNonQuery();


}
else
{

}

}
MessageBox.Show("Le fichier est importé avec succes.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
MyConnection.Close();
dataGridView1.DataSource = null;

}
}//TRY
catch (Exception don)
{
//MessageBox.Show(don.ToString());
MessageBox.Show(don.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}

1 réponse

pierrehenri56 Messages postés 63 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 29 octobre 2013 1
29 oct. 2013 à 13:55
Salut,
je pense que ce lien peut t'aider:

http://support.microsoft.com/kb/175168/fr

--
0
Rejoignez-nous