[英]Where should i put my C# if statement, for the case my sql query comes back blank?
我在哪里可以在if語句中說:如果sql查詢返回為空,則Console.WriteLine("I'm sorry, empty...whatnot");
我不知道如何檢查查詢結果是否為空。
這是我的代碼:
public void IsMovieInStore()
{
Console.Write("Searh for a movie title: ");
string title = Console.ReadLine();
string connectionString = @"Data Source=|DataDirectory|\VideoStoreDB.sdf";
SqlCeConnection connection = new SqlCeConnection(connectionString);
SqlCeCommand command = new SqlCeCommand("SELECT Movie.Title, MovieHandler.InStore FROM Movie INNER JOIN MovieHandler ON Movie.MovieCodeLable = MovieHandler.MovieCodeLable WHERE MovieHandler.InStore = 1 AND Movie.Title = @title", connection);
command.Parameters.AddWithValue("@title", title);
SqlCeDataAdapter dataAdapter = new SqlCeDataAdapter(command);
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet, "Movie");
foreach (DataTable dataTable in dataSet.Tables)
{
foreach (DataRow row in dataTable.Rows)
{
foreach (DataColumn column in dataTable.Columns)
{
Console.WriteLine(column.ColumnName + ": " + row[column]);
}
Console.WriteLine("-------------------------");
}
}
Console.ReadLine();
}
嘗試檢查表和行數
//....
dataAdapter.Fill(dataSet, "Movie");
if (0 == dataSet.Tables.Count || 0 == dataSet.Tables[0].Rows.Count)
{
Console.WriteLine("I'm so lonely");
}
foreach (DataTable dataTable in dataSet.Tables)
//...
您可以通過分配dataAdapter.Fill(dataSet, "Movie");
輕松檢查此情況dataAdapter.Fill(dataSet, "Movie");
到一個int
變量。 Fill方法返回添加到數據集中或在數據集中刷新的行數。 有關更多信息,請參見msdn: DataAdapter.Fill方法 。
int rows = dataAdapter.Fill(dataSet, "Movie");
if(rows > 0)
{
//process data
}
else
{
Console.WriteLine("Sorry, no data...");
}
您不需要使用數據集,而使用數據表:
public void IsMovieInStore()
{
Console.Write("Searh for a movie title: ");
string title = Console.ReadLine();
string connectionString = @"Data Source=|DataDirectory|\VideoStoreDB.sdf";
SqlCeConnection connection = new SqlCeConnection(connectionString);
SqlCeCommand command = new SqlCeCommand("SELECT Movie.Title, MovieHandler.InStore FROM Movie INNER JOIN MovieHandler ON Movie.MovieCodeLable = MovieHandler.MovieCodeLable WHERE MovieHandler.InStore = 1 AND Movie.Title = @title", connection);
command.Parameters.AddWithValue("@title", title);
SqlCeDataAdapter dataAdapter = new SqlCeDataAdapter(command);
DataTable dataTable = new DataTable();
dataAdapter.Fill(dataTable);
If(dataTable != null && dataTable.Rows.Count>0)
{
foreach (DataRow row in dataTable.Rows)
{
foreach (DataColumn column in dataTable.Columns)
{
Console.WriteLine(column.ColumnName + ": " + row[column]);
}
Console.WriteLine("-------------------------");
}
}
}
else{
Console.WriteLine("Empty result");
}
Console.ReadLine();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.