Essayer de passer SqlCommand dans SqlDataAdapter en tant que parameters

J'ai réussi à build ma méthode pour exécuter une command select. Cela fonctionne bien. Ensuite, je change mon code pour SqlDataAdapter DA = new SqlDataAdapter();

J'ai essayé de passer SqlCommand tant que CommandType.Text dans les parameters, mais je ne peux pas le faire avec succès. J'ai une erreur. Est-il possible si je peux le passer en tant que parameters. S'il vous plaît voir mon code.

Code en cours d'exécution (code de page aspx)

 if ((!ssortingng.IsNullOrEmpty(user_login.Value)) && (!ssortingng.IsNullOrEmpty(user_pass.Value))) { // username & password logic DataTable dt = new DataTable(); ssortingng strQuery = "SELECT 1 FROM TBL_USER_INFO WHERE USERNAME = @USERNAME AND PASSWORD = @PASSWORD"; SqlCommand cmd = new SqlCommand(strQuery); cmd.Parameters.Add("@USERNAME", SqlDbType.VarChar).Value = user_login.Value.Trim(); cmd.Parameters.Add("@PASSWORD", SqlDbType.VarChar).Value = user_pass.Value.Trim(); DBConnection conn_ = new DBConnection(); dt = conn_.SelectData(cmd); if (conn_.SQL_dt.Rows.Count > 0) { Response.Redirect("Home.aspx", false); } } 

Code de class de connection réussi

 public DataTable SelectData(SqlCommand command) { try { conn.Open(); SqlDataAdapter DA = new SqlDataAdapter(); command.CommandType = CommandType.Text; command.Connection = conn; DA.SelectCommand = command; DA.Fill(SQL_dt); return SQL_dt; } catch (Exception ex) { return null; } finally { conn.Close(); } } 

Comment puis-je passer CommandType.Text tant que parameters pour SqlDataAdapter ?

Code d'erreur

 public DataTable SelectData(SqlCommand command) { try { conn.Open(); SqlDataAdapter DA = new SqlDataAdapter(command.CommandType.ToSsortingng(), conn); // command.CommandType = CommandType.Text; // command.Connection = conn; DA.SelectCommand = command; DA.Fill(SQL_dt); return SQL_dt; } catch (Exception ex) { return null; } finally { conn.Close(); } } 

Je reçois cette erreur:

System.InvalidOperationException: Fill: La propriété SelectCommand.Connection n'a pas été initialisée.
à System.Data.Common.DbDataAdapter.GetConnection3 (adaptateur DbDataAdapter, command IDbCommand, méthode Ssortingng) …

 public DataTable SelectData(ssortingng query) { DataTable dt = new DataTable(); using (SqlConnection con = new SqlConnection("Your Connection Ssortingng here")) { con.Open(); using (SqlCommand cmd = con.CreateCommand()) { cmd.CommandText = query; cmd.CommandType = CommandType.Text; using (SqlDataAdapter adp = new SqlDataAdapter(cmd)) { adp.Fill(dt); return dt; } } } } 

Utiliser:

 SelectData("select * from yourTable"); 

Reds a la réponse. Juste pour nettoyer le code un peu …

  public DataTable SelectData(ssortingng query) { using (var connection = new SqlConnection("myConnectionSsortingng")) using (var command = new SqlCommand(query, connection)) using (var adapter = new SqlDataAdapter(command)) { var dt = new DataTable(); connection.Open(); adapter.Fill(dt); return dt; } } 

En fait, vous devriez passer l'object de connection sur SQLCommand.Hope il vous a aidé

  DBConnection conn_ = new DBConnection(); SqlCommand cmd = new SqlCommand(strQuery,conn_); 

L'erreur que vous obtenez n'est pas liée à CommandType.Text, il indique que vous avez initialisé la propriété connection de SelectCommand. Fondamentalement, vous devriez décommenter "command.Connection = conn;" se débarrasser de cette erreur. Si vous rencontrez toujours un autre problème, il est préférable de fournir ces détails dans les questions pour fournir une réponse précise.