簡體   English   中英

如果我的sql查詢返回空白,我應該在哪里放置C#if語句?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM