2015-12-25 22 views
6

Sto cercando di inserire alcuni dati nel mio DB (Microsoft SQL Server)non può aprire il database - richiesto dal login - perché non posso collegarmi al mio DB?

La mia connessione non si apre e ricevo questo messaggio:

Impossibile aprire il database \ "[Vendite e Sistema di inventario] \ "richiesto dal login. L'accesso non è riuscito. \ R \ nLogin non riuscito per l'utente 'Mostafa-PC \ Mostafa'.

Ecco il mio codice:

public void InsertProduct(List<string> _myName, 
         List<int> _myAmount, 
         List<int> _myPrice, string _date) 
{ 
string connectionString = @"Data Source=MOSTAFA-PC;Initial Catalog=[Sales and Inventory System];Integrated Security=True"; 
string query = @"INSERT INTO dbo.product(Name, Amount, Price, [date]) 
          VALUES(@Name, @Amount, @Price, @Date);"; 

using (SqlConnection Con = new SqlConnection(connectionString)) 
using (SqlCommand Cmd = new SqlCommand(query, Con)) 
{ 

    Cmd.Parameters.Add("@Name", SqlDbType.NVarChar); 
    Cmd.Parameters.Add("@Amount", SqlDbType.Int); 
    Cmd.Parameters.Add("@Price", SqlDbType.Int); 
    Cmd.Parameters.Add("@Date", SqlDbType.DateTime).Value = Convert.ToDateTime(_date); 

    Cmd.Connection = Con; 
    Con.Open(); 

    int recordsToAdd = _myName.Count(); 
    for(int x = 0; x < recordsToAdd; x++) 
    { 
     Cmd.Parameters["@Name"].Value = _myName[x]; 
     Cmd.Parameters["@Amount"].Value = _myAmount[x]; 
     Cmd.Parameters["@Price"].Value = _myPrice[x]; 
     Cmd.ExecuteNonQuery(); 
    } 
} 

Ho fatto tutto e ho cercato ovunque. Non riesco a capire perché.

+2

Che messaggio di errore ricevi? Hai provato a connettere l'istanza in SSMS? Hai controllato le credenziali in esecuzione il codice ha accesso? –

+0

perché non hai dichiarato "ID utente = xyz; Password = xyz;' nella stringa di connessione? – pedram

+0

OPPURE è possibile impostare la stringa di connessione in web.config e quindi provare ad accedere come questo 'System.Configuration.ConfigurationManager.ConnectionStrings [" CS "]' dal codice. – pedram

risposta

3

Sembra che tu debba controllare sotto le cose per risolvere il tuo errore.

1.Controllo permesso. L'utente deve avere accesso a questo Database. Most Important One

2. Inoltre, Sarebbe meglio per accedere App.config key al codice lato. Quindi dichiarare la stringa di connessione in app.config e provare a impostare come di seguito.

string connectionstring = System.Configuration.ConfigurationManager.ConnectionStrings["keyname"] 

3. È inoltre necessario provare a collegare l'istanza in SSMS e non dovrebbe essere fallito.

Questo Link può essere utile per ulteriori informazioni.

0

L'errore è sicuramente legato al permesso. Verificare l'autorizzazione dell'account sull'istanza e sul DB. E assicurarsi che il DB esista davvero sul server. A volte, si lamenta del permesso ma DB non esiste nemmeno.