Как решить проблему с подключением к C # и SQL Server? Данные не начинаются, сохраняются - PullRequest
0 голосов
/ 09 мая 2019

У меня проблемы с подключением к SQL Server в C #.

Моя программа проста, введите имя и описание, а затем сохраните его с Active Record в базе данных.Но данные не начинают сохраняться.

Когда я обращаюсь к базе данных SQL Server (Select top 1000 rows), ничего не отображается.

Какая часть кода не работает, C # илиSQL?Я использую консольную команду для ввода.

Мой класс Neighborhood:

private string name;
private string description;

public string Name { get { return name; } set { name = value; } }
public string Description { get { return description; } set { description = value; } }

public Neighborhood(string name, string description)
{
    this.Name = name;
    this.Description = description;
}

public Neighborhood(){}

public bool Save()
{
    bool retor = false;
    string strCon = "Data Source=FACUNDO\\USARESTESQLSERVE; Initial Catalog = TestDB; Integrated Security = SSPI; ";

    SqlConnection con = new SqlConnection(strCon);

    string insert = "INSERT INTO Neighborhood (Name, Description) VALUES (@nom, @desc);";

    SqlCommand command = new SqlCommand(insert, con);
    command.Parameters.AddWithValue("@nam", this.Name);
    command.Parameters.AddWithValue("@desc", this.Description);

    try
    {
         con.Open();
         retor = true;
    }
    catch
    {
         retor = false;
         throw;
    }
    finally
    {
         if (con.State == ConnectionState.Open) 
              con.Close();
    }

    return retor;
}

И это код SQL

CREATE DATABASE TestDB

USE TestDB

CREATE TABLE Neighborhood 
(
    Name VARCHAR(30) NOT NULL,
    Description VARCHAR(50) NOT NULL,
    CONSTRAINT PK_Neighborhood PRIMARY KEY (Name) 
)

1 Ответ

2 голосов
/ 09 мая 2019

У вас есть опечатка, правильный @nom:

command.Parameters.AddWithValue("@nom", this.Name);

Вы просто забыли выполнить запрос с помощью command.ExecuteNonQuery();:

try
{
   con.Open();

   // execute the query command
   command.ExecuteNonQuery(); 

   retor = true;
}
catch    
{
    retor = false;
    throw;
}
finally 
{
   if (con.State == ConnectionState.Open) 
       con.Close();
}

return retor;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...