Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[c#][MVC] pobieranie danych z bazy danych gdy już połączenie jest ustanowione

Ostatnio zmodyfikowano 2017-01-17 22:46
Autor Wiadomość
aaadam
Temat założony przez niniejszego użytkownika
[c#][MVC] pobieranie danych z bazy danych gdy już połączenie jest ustanowione
» 2017-01-12 12:02:04
Witam, tworzę prostą aplikacje mvc używam wbudowanego szablonu "Individual User Accounts". Dodałem nowy controler który ma mi zwracać jakieś dane na temat tabeli 'AspNetUsers' o to kod :
C/C++
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using identity.Models;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;

namespace identity.Controllers
{
    public class AdminController
: Controller
    {
        // GET: Admin
        [ Authorize( Users = "admin@admin.pl" ) ]
        public ActionResult Index()
        {
            /*var currentId = User.Identity.GetUserId();
                        var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
                        var curentUser = manager.FindById(currentId);
                        var info = string.Format("nazwa : {0}, email : {1} , dane : {2} ", curentUser.NazwaUzytkownika,
                            curentUser.Email, curentUser.DaneUzytkownika);
                        ViewBag.ProfileInformation = info;*/
            string connetionString =
            "Data Source = (LocalDb)\\MSSQLLocalDB; AttachDbFilename = \"C:\\Users\\xxx\\Documents\\Visual Studio 2015\\Projects\\identity\\identity\\App_Data\\aspnet-identity-20170111025357.mdf\"; Initial Catalog = aspnet - identity - 20170111025357; Integrated Security = True";
           
            //      string query = "Select UserName from dbo.kontaktyadd where @id";
           
            string query = "Select UserName from dbo.AspNetUsers where id=@id";
           
            var id = "cec9720b - c588 - 4ab0 - bde2 - 11d4e9219fa5";
            using( SqlConnection connection = new SqlConnection( connetionString ) )
            {
                SqlCommand command = new SqlCommand( query, connection );
                command.Parameters.AddWithValue( "@id", id );
                connection.Open(); //<-- tutaj wywala błąd
                SqlDataReader reader = command.ExecuteReader();
                reader.Read();
                var info = reader[ 1 ];
                ViewBag.info = info;
            }
           
            return View();
        }
    }
}

wywala mi błąd :

Wystąpił wyjątek typu „System.Data.SqlClient.SqlException” w System.Data.dll, ale nie został obsłużony w kodzie użytkownika

Dodatkowe informacje: Cannot attach file 'C:\Users\xxx\Documents\Visual Studio 2015\Projects\identity\identity\App_Data\aspnet-identity-20170111025357.mdf' as database 'aspnet - identity - 20170111025357' because this file is already in use for database 'aspnet-identity-20170111025357'

domyślam się, że baza już jest otwarta, proszę o pomoc jak to obejść... jak np zamknąć wsześniejsze połączenie lub jak odwołać się do intniejącego
pozdrawiam
P-156357
DejaVu
» 2017-01-13 18:18:34
Złap wyjątek i sprawdź co zostało rzucone.

/edit:
Komunikat sugeruje, że plik jest aktualnie w użyciu więc drugi proces nie może uzyskać do niego dostępu.
P-156386
aaadam
Temat założony przez niniejszego użytkownika
» 2017-01-17 22:46:06
poradziłem sobie z tym po prostu odwołałem się do kontekstu aplikacji, można zamknąć temat ...
P-156572
« 1 »
  Strona 1 z 1