2009-08-11 9 views

Respuesta

-1

cheque en este enlace puede ser que es útil para usted. convierta el código vb.net a C# después de obtener datos en sql puede importar y exportar a msaccess.

http://sqlmca.wordpress.com/2009/07/29/how-to-get-data-from-dataset-into-sqlserver-table-by-using-openxml-method/

+0

¿Por qué sugeriría utilizar SQL Server como intermediario, cuando debería poder hacer el trabajo directamente? –

+0

conozco la solución de esta manera, así que le digo que haga esto también dije que podría ser útil para él, eso es solo una sugerencia. – KuldipMCA

5

para este tipo de tarea, considere el uso de la abstracción data adapter. Con una base de datos Microsoft Access, puede utilizar la aplicación OleDbDataAdapter como se muestra en el siguiente ejemplo:

// Prerequisite: The data to be inserted is available in a DataTable/DataSet. 
var data = new DataTable(); 
data.Columns.Add("CompanyName", typeof(string)); 
data.Columns.Add("Phone", typeof(string)); 
data.Rows.Add("Foo", "12345678"); 
data.Rows.Add("Bar", "87654321"); 

// Now, open a database connection using the Microsoft.Jet.OLEDB provider. 
// The "using" statement ensures that the connection is closed no matter what. 
using (var connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=Northwind.mdb")) 
{ 
    connection.Open(); 

    // Create an OleDbDataAdapter and provide it with an INSERT command. 
    var adapter = new OleDbDataAdapter(); 
    adapter.InsertCommand = new OleDbCommand("INSERT INTO Shippers (CompanyName, Phone) VALUES (@CompanyName , @Phone)", connection); 
    adapter.InsertCommand.Parameters.Add("CompanyName", OleDbType.VarChar, 40, "CompanyName"); 
    adapter.InsertCommand.Parameters.Add("Phone", OleDbType.VarChar, 24, "Phone"); 

    // Hit the big red button! 
    adapter.Update(data); 
} 

Usted puede hacer lo mismo con otras marcas de motores de bases de datos, así reemplazando OleDbCommand, OleDbDataAdapter y OleDbConnection con las implementaciones adecuadas para su motor de base de datos. Para Microsoft SQL Server, busque las clases con el prefijo Sql, p. Ej. SqlCommand.

+0

Eso fue muy útil, gracias – user983924

1
public void insert_dataset(DataSet ds,string ret_table, string table, string fileds, ArrayList arr_data) 
    { 
     ArrayList arr_rec=new ArrayList(); 

     string[] str_fields = fileds.Split(','); 

     for (int i=0;i<ds.Tables[ret_table].Rows.Count;i++) 
     { 
      for (int j = 0; j < str_fields.Length; j++) 
      { 
       arr_rec.Add(ds.Tables[ret_table].Rows[i].ItemArray[j]); 
      } 

      insert_table(table, fileds, arr_rec); 

      arr_rec.Clear(); 
     } 


    } 
    public void insert_table(string table,string fileds,ArrayList arr_data) 
    { 
     string str_command, str_params; 

     string[] str_fields = fileds.Split(','); 

     for (int i = 0; i < str_fields.Length; i++) 
     { 
      str_fields[i] = "@" + str_fields[i].Trim(); 
     } 

     str_params = string.Join(",", str_fields); 

     str_command = "INSERT INTO " + table + "(" + fileds + ") values(" + str_params + ")"; 

     con = new OleDbConnection(); 
     //for sql 
     //con=new SqlConnection(); 

     con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + frm_main.cur_directory + "\\db_temp1.mdb;Persist Security Info=True"; 
     //for sql 
     //con.ConnectionString="server=(local);trusted_connection=yes;database=telephon;"; 

     cmd = con.CreateCommand(); 
     //for sql 
     //cmd=new SqlCommand(); 
     cmd.Connection = con; 

     con.Open(); 

     cmd.CommandText =str_command; 

     // cmd.Parameters.AddWithValue("@ACagname", "2"); 
     for (int i = 0; i < arr_data.Count; i++) 
     { 
      cmd.Parameters.AddWithValue(str_fields[i],arr_data[i]); 
     } 

     cmd.ExecuteNonQuery(); 

     con.Close(); 

    } 
+0

Sería útil agregar algo de información a su código cortado. –

Cuestiones relacionadas