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.