SQL에서 물건을 얻는 데 사용하는이 작은 방법이 있습니다. 나는 varSearch = ""
또는 varSearch = "something"
으로 부릅니다. 이 방법으로 작성된 메서드를 사용하는 것이 가장 좋은지 또는 두 메서드 (오버로딩)로 나누는 것이 더 좋을까요, 아니면 어쨌든 전체적으로 WHERE
clausule을 매개 변수화 할 수 있습니까?이 방법은 C#에서 SQL 값을 가져 오는 좋은 방법입니까?
private void sqlPobierzKontrahentDaneKlienta(ListView varListView, string varSearch) {
varListView.BeginUpdate();
varListView.Items.Clear();
string preparedCommand;
if (varSearch == "") {
preparedCommand = @"
SELECT t1.[KlienciID],
CASE WHEN t2.[PodmiotRodzaj] = 'Firma' THEN
t2.[PodmiotFirmaNazwa] ELSE
t2.[PodmiotOsobaNazwisko] + ' ' + t2.[PodmiotOsobaImie] END AS 'Nazwa'
FROM [BazaZarzadzanie].[dbo].[Klienci] t1
INNER JOIN [BazaZarzadzanie].[dbo].[Podmioty] t2
ON t1.[PodmiotID] = t2.[PodmiotID]
ORDER BY t1.[KlienciID]";
} else {
preparedCommand = @"
SELECT t1.[KlienciID],
CASE WHEN t2.[PodmiotRodzaj] = 'Firma' THEN
t2.[PodmiotFirmaNazwa] ELSE
t2.[PodmiotOsobaNazwisko] + ' ' + t2.[PodmiotOsobaImie] END AS 'Nazwa'
FROM [BazaZarzadzanie].[dbo].[Klienci] t1
INNER JOIN [BazaZarzadzanie].[dbo].[Podmioty] t2
ON t1.[PodmiotID] = t2.[PodmiotID]
WHERE t2.[PodmiotOsobaNazwisko] LIKE @searchValue OR t2.[PodmiotFirmaNazwa] LIKE @searchValue OR t2.[PodmiotOsobaImie] LIKE @searchValue
ORDER BY t1.[KlienciID]";
}
using (var varConnection = Locale.sqlConnectOneTime(Locale.sqlDataConnectionDetails))
using (SqlCommand sqlQuery = new SqlCommand(preparedCommand, varConnection)) {
sqlQuery.Parameters.AddWithValue("@searchValue", "%" + varSearch + "%");
using (SqlDataReader sqlQueryResult = sqlQuery.ExecuteReader())
if (sqlQueryResult != null) {
while (sqlQueryResult.Read()) {
string varKontrahenciID = sqlQueryResult["KlienciID"].ToString();
string varKontrahent = sqlQueryResult["Nazwa"].ToString();
ListViewItem item = new ListViewItem(varKontrahenciID, 0);
item.SubItems.Add(varKontrahent);
varListView.Items.AddRange(new[] {item});
}
}
}
varListView.EndUpdate();
}
코드에는 별다른 차이가 없지만 LINQ2SQL 또는 ADO.NET Entity Framework를 사용해 보셨습니까? –
대부분의 프레임 워크가 영어이므로 코드를 영어로 사용하는 것이 좋습니다 (영어 원어민도 아닙니다). 영어를 사용하면 코드가 더 잘 통합됩니다. 예를 들어, "hinzufügen"(add는 독일어)를 사용하거나 프레임 워크 클래스의 하위 클래스이고 "override"해야하므로 "add"를 사용하는 것이 좋습니다. – dbemerlin
나는 프로그램이 네이티브 언어가 아니라면 항상 이해합니다. 나는 항상 영어를 사용합니다. 그러나 제가 독서하는 유일한 사람이기 때문에 비즈니스 용어와 이름을 영어로 번역하는 것은 의미가 없습니다. 글을 쓰는 것이고 폴란드어와 다른 언어는 될 수 없습니다. – MadBoy