行でExecuteReader: CommandText プロパティが初期化されていませんというエラーが表示されますadapter.fill(ds)
。奇妙なこと@user
に、実際の文字列 (「名前」など) に置き換えると問題なく動作するため、パラメーターを設定する部分で何かが壊れているようです。
'
's を含む文字列と含まない文字列 (@user/'@user') の両方を設定しようとしました。また、 と の両方=
を使用してみましたlike
。User.Identity.Name.ToString()
テキストボックスを設定することにより、ログインしているユーザーを正しく返すことがテストされています。
英語以外のデータベース変数について申し訳ありません。この質問がどこかで回答されている場合。とはいえ、半ダース時間検索した後、ほとんどあきらめました (たぶん、私はそれが苦手なだけかもしれません)。
関連コード:
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();
}
}