Le paramètre.addwithvalue - ExecuteReader: propriété CommandText n'a pas été initialisé
Je reçois le message d'erreur ExecuteReader: propriété CommandText n'a pas été initialisé à la adapter.fill(ds)
ligne. La chose étrange est que si je remplace @user
avec une chaîne réelle (par exemple, 'nom') il fonctionne parfaitement bien, donc, quelque chose semble cassé dans la partie qui définit le paramètre.
J'ai essayé de mettre la chaîne à la fois avec et sans '
'(c'est à dire @user et@user'). J'ai aussi essayé d'utiliser à la fois =
et like
. User.Identity.Name.ToString()
a été testé pour revenir à l'utilisateur connecté correctement par la définition d'une zone de texte.
Désolé pour la non-anglais variables de base de données et si cette question a été posée quelque part. J'ai presque après une demi-douzaine d'heures de recherche, même si (peut-être que je viens de sucer).
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
public partial class Bruker : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
String conn = ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;
SqlConnection sql = new SqlConnection(conn);
sql.Open();
SqlCommand command = new SqlCommand(conn);
command.CommandText = "SELECT klubb.KlubbNavn FROM Klubber klubb inner join User_Klubber_Connection conn on Klubb.Klubb_Id = conn.Klubb_Id inner join aspnet_Users bruker on bruker.UserId = conn.UserId WHERE bruker.UserName = @user";
command.Parameters.AddWithValue("@user", User.Identity.Name.ToString());
command.Connection = sql;
SetDropDownList(command);
DropDownList1.SelectedIndex = 0;
ChangeGridView(GetMembersOfClub(), sql);
sql.Close();
}
protected void SetDropDownList(SqlCommand command)
{
SqlDataAdapter adapter = new SqlDataAdapter(command);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
DataSet ds = new DataSet();
adapter.Fill(ds);
DropDownList1.DataSource = ds;
DropDownList1.DataTextField = "KlubbNavn";
DropDownList1.DataBind();
}
}
OriginalL'auteur user1339253 | 2013-03-12
Vous devez vous connecter pour publier un commentaire.
Modifier Oublier tout faire à la suite sur page_load
Et de voir la sortie
ses cours d'exécution fine
C'est des années depuis que je l'ai fait donc je ne peux pas être sûr, mais je suppose que c'était quelque chose comme le paramètre qui n'est pas définie correctement, et l'exécution de la ligne, il suggère vous permettrait de voir. Ainsi, le correctif est de s'assurer que la valeur de la configuration de @utilisateur possède une valeur. Mais je ne me souviens pas vraiment ce à tous les... :'D
OriginalL'auteur Siz S
Probablement que vous obtenez
null
danscommand.Parameters.AddWithValue("@user", User.Identity.Name.ToString());
Essayer:
Edit: (d'après les commentaires)
Avez-vous essayé de créer un paramètre manuellement?
Au lieu d'utiliser
AddWithValue(...)
essayer :OriginalL'auteur Retired_User