1

私は現在、データベースのフォントエンドを構築していますが、現在立ち往生しています。データソースのドロップダウン リストのリスト項目を取得し、それを SQL クエリのパラメーターとして使用しようとしています。次に、これらの結果の各列をテキスト ボックスに表示したいと思います。ここにいくつかのコードがあります!

ボタンイベント時:

protected void ButtonAsset_Click(object sender, EventArgs e)
{
    ExecuteSelect(DropDownListAsset.Selecteditem.Text);
}

接続文字列の取得:

    public string GetConnectionStringMyConn()
{
    return System.Configuration.ConfigurationManager.ConnectionStrings["my_conn"].ConnectionString;
}

選択方法:

    private void ExecuteSelect(string Aname)
{
    SqlConnection connection = new SqlConnection(GetConnectionStringMyConn());
    using (var command = connection.CreateCommand())
    {
        command.CommandText = "Select tblAssets.AssetID, tblAssets.Domain, tsysOS.OSname, tblAssets.SP,"
        + "tblAssets.Memory, tblAssets.Processor, tblAssetCustom.Manufacturer, tblAssetCustom.Model)"
        + "FROM tblAssets"
        + "INNER JOIN tblAssetsCustom ON tblAssets.AssetID = tblAssetCustom.AssetID "
        + "INNER JOIN tsysOS ON tblAssets.OScode = tsysOS.OScode "
        + "WHERE tblAssets.AssetName = @AssetName";
        connection.Open();


        SqlParameter[] Aparam = new SqlParameter[1];
        Aparam[0] = new SqlParameter("@AssetName", SqlDbType.NVarChar);
        Aparam[0].Value = Aname;

        using (var reader = command.ExecuteReader())
        {
            while (reader.Read())
            TextBoxAssetID.Text = reader["AssetID"].ToString();
            TextBoxDomain.Text = reader["Domain"].ToString();
            TextBoxOS.Text = reader["OSname"].ToString();
            TextBoxSP.Text = reader["SP"].ToString();
            TextBoxMemory.Text = reader["Memory"].ToString();
            TextBoxProcessor.Text = reader["Processor"].ToString();
            TextBoxManufacturer.Text = reader["Manufacturer"].ToString();
            TextBoxModel.Text = reader["Model"].ToString();
        }


        connection.Close();
  }
}

どんな助けでも大歓迎です!(var reader = command.ExecuteReader()) を使用すると構文エラーが発生し続け、その理由がわかりません。私はこれを使ってきましたGet SQL data And show it in a text box? 読者のために

4

1 に答える 1

0

このようにします

    SqlCommand command= new SqlCommand();
    command.Connection = connection;        
    command.CommandText = "Select tblAssets.AssetID, tblAssets.Domain, tsysOS.OSname, tblAssets.SP,"
    + " tblAssets.Memory, tblAssets.Processor, tblAssetCustom.Manufacturer, tblAssetCustom.Model"
    + " FROM tblAssets"
    + " INNER JOIN tblAssetsCustom ON tblAssets.AssetID = tblAssetCustom.AssetID "
    + " INNER JOIN tsysOS ON tblAssets.OScode = tsysOS.OScode "
    + " WHERE tblAssets.AssetName = @AssetName";
    connection.Open();

    command.Parameters.Add("@AssetName",SqlDbType.NVarchar).Value = Aname;      

    using (SqlDataReader reader = command.ExecuteReader())
    {
        if (reader.Read())
        {      
          TextBoxAssetID.Text = reader["AssetID"].ToString();
          TextBoxDomain.Text = reader["Domain"].ToString();
          TextBoxOS.Text = reader["OSname"].ToString();
          TextBoxSP.Text = reader["SP"].ToString();
          TextBoxMemory.Text = reader["Memory"].ToString();
          TextBoxProcessor.Text = reader["Processor"].ToString();
          TextBoxManufacturer.Text = reader["Manufacturer"].ToString();
          TextBoxModel.Text = reader["Model"].ToString();
        }

    ////// Rest of code goes from Here ...
于 2013-07-10T10:52:05.033 に答える