Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.
Закрыт 1 год назад.
Мне нужно получить в коллекцию данные из базы данных Мне нужно наполнить ее данными из MS SQL Server Код коллекции.
class CityBD
{
public string Title { get; set; }
public string Company { get; set; }
public string price { get; set; }
public int Square { get; set; }
public static CityBD[] GetCityBDs()
{
var result = new CityBD[]
{
new CityBD() { Title = "Москва", Company = "Россия", price = "абвг", Square = 1 },
new CityBD() { Title = "Вашингтон", Company = "США", price = "абвг", Square = 2 }
};
return result;
}
}
}
Мне нужно сделать так, чтобы данные брались с SQL сервера. Код SQL
USE [mobiledb]
GO
/** Object: StoredProcedure [dbo].[sp_InsertPhone] Script Date: 20.05.2019 22:02:06 **/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_InsertPhone]
@title nvarchar(50),
@company nvarchar(50),
@price int,
@Square int,
@Date date,
@Id int out
AS
INSERT INTO Phones (Title, Company, Price,Square,Date)
VALUES (@title, @company, @price,@Square,@Date)
SET @Id=SCOPE_IDENTITY()
Использовать для загрузки из БД статический метод в самом классе модели -- идея не из лучших, для этого стоит создать отдельный класс, примерно такой:
public class PhonesLoader
{
private const string SelectAllQuery = @"SELECT Title, Company, Price, Square FROM Phones";
private readonly string _connectionString;
public PhonesLoader(string connectionString)
{
if (string.IsNullOrWhiteSpace(connectionString))
throw new ArgumentNullException(nameof(connectionString));
_connectionString = connectionString;
}
public CityBD[] GetAll()
{
var result = new List<CityBD>();
using (var connection = new SqlConnection(_connectionString))
using (var command = connection.CreateCommand())
{
command.Type = CommandType.Text;
command.CommandText = SelectAllQuery;
using (var reader = command.ExecuteReader())
{
var titleColumnName = reader.GetOrdinal(nameof(CityBD.Title));
var companyColumnName = reader.GetOrdinal(nameof(CityBD.Company));
var priceColumnName = reader.GetOrdinal(nameof(CityBD.Price));
var squareColumnName = reader.GetOrdinal(nameof(CityBD.Square));
while (reader.Read())
{
var record = new CityBD();
record.Title = reader.GetString(titleColumnName);
record.Company = reader.GetString(companyColumnName);
record.Price = reader.GetString(priceColumnName);
record.Square = reader.GetInt32(squareColumnName);
result.Add(record);
}
}
}
return result.ToArray();
}
}
Безусловно, код очень упрощен, но, надеюсь, поможет Вам понять, куда двигаться дальше. Скорее всего в Вашу модель CityBD надо еще добавить Id.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть несколько radioButton пример, (заполнены для примера, нужно случайными через цикл)
В C# предусмотрен механизм захвата внешних переменных в анонимных методахПриведу пример кода:
Как не хардкодить учетные записи? Какие есть варианты решения данной проблемы?