SQL-database verschillen

stemmen
0

Ik heb er 2 codes over hoe om verbinding te maken met SQL Server 2005 database. code 1 gebruikt dataset en DataAdapter, code 2 , niet gebruikt beide. Kan iemand me helpen uitleggen wat is het verschil en advatages / nadelen aan beide programs..thankz

Code1


//create connection, dataset, dataadapter
System.Data.SqlClient.SqlConnection con;
DataSet ds1;
System.Data.SqlClient.SqlDataAdapter da;

int MaxRows = 0; //hold how many rows in the dataset int inc = 0; //change the current Row number private void Form1_Load(object sender, EventArgs e) { con = new System.Data.SqlClient.SqlConnection(); ds1 = new DataSet(); //setting the connection string con.ConnectionString = Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Administrator\Documents\Visual Studio 2008\Projects\WindowsFormsApplication5\WindowsFormsApplication5\Test2.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True; con.Open();

 //create object for 'da' variable
 string sql = SELECT * From tblOutbox;
 da = new System.Data.SqlClient.SqlDataAdapter(sql, con);

 da.Fill(ds1, tblOutbox);
 NavigateRecords();
 //get the number of rows in DataSet
 MaxRows = ds1.Tables[tblOutbox].Rows.Count;

 con.Close();

}

Code 2:


System.Data.SqlClient.SqlConnection sqlConnection1 =
  new System.Data.SqlClient.SqlConnection(Data Source=.\SQLEXPRESS;AttachDbFilename=F:\Test2.mdf;Integrated Security=True;User Instance=True);

//command queries System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); cmd.CommandType = System.Data.CommandType.Text //cmd.CommandText = INSERT IGNORE INTO tblSend (ip, msg, date) SELECT ip, msg, date FROM tblOutbox; cmd.Connection = sqlConnection1;

sqlConnection1.Open(); //open con cmd.ExecuteNonQuery(); //execute query sqlConnection1.Close(); //close con

De vraag is gesteld op 27/08/2009 om 07:55
bron van user
In andere talen...                            


4 antwoorden

stemmen
1

Code 1 een halen (vandaar de dataset wat een informatietype opslagobject) en code 2 eenvoudig een opdracht (een insertie) in de dbase loopt. Echter, de cmd.CommandText () wordt gereageerd (en dus is niet ingesteld), zodat code ook daadwerkelijk een uitzondering te gooien.

EDIT: Neem een kijkje hier: ADO.Net 2.0 Documentatie MSDN

antwoordde op 27/08/2009 om 07:59
bron van user

stemmen
1

De eerste krijgt iets uit de database, het is een select. De tweede doet niets, maar als de cmd.CommandText is uncommented voert een insert. Ze zijn zeker geen voorbeelden van hetzelfde te doen op verschillende manieren.

antwoordde op 27/08/2009 om 08:01
bron van user

stemmen
2

In de eerste code die u probeert om een resultaat set uit de database te halen met behulp van dataadpater en dan het vullen van een dataset met de fill methode DataAdapter.

In de tweede u invoegt gegevens aan een tafel met behulp ExecuteNonQuery Werkwijze SqlCommand object.

antwoordde op 27/08/2009 om 08:02
bron van user

stemmen
0

Eerste die je selecteert en in de tweede u invoegt :)

Dataset en DataAdapter worden gebruikt om gegevens op te halen uit de database.

Dataadapter fungeren als een brug tussen database en dataset.

In uw tweede code zegt dat zijn voor het inbrengen van uw gegevens aan database.

ExecuteNonQuery zegt hoeveel rijen worden beïnvloed.

antwoordde op 27/08/2009 om 08:16
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more