C# 在 MySQL 查询上设置变量

标签 c# mysql

我现在正在编写 C# 函数,它必须返回我的用户密码。一切都很好,但是当我尝试编译这个项目时,VS 告诉我未分配的变量。

string sqlLoginCheck (string userId)
    {
        string database, host, user, pass, sqlParams, sqlQuery;
        string resultPassword;

        database = "db";
        host = "localhost";
        user = "root";
        pass = "....";

        sqlParams = "Database=" + database + ";Data Source=" + host + ";User Id=" + user + ";Password=" + pass;
        sqlQuery = "SELECT `id`, `name`, `pass` FROM `users` WHERE name = '" + userId + "' LIMIT 1";

        MySqlConnection sqlConnection = new MySqlConnection(sqlParams);
        MySqlCommand sqlCommand = new MySqlCommand(sqlQuery, sqlConnection);

        // Выполняем
        try
        {
            sqlConnection.Open();

            MySqlDataReader sqlReader = sqlCommand.ExecuteReader();

            if (sqlReader.HasRows)
            {
                while (sqlReader.Read())
                {
                    resultPassword = sqlReader[2].ToString();
                }
            }
            else
            {
                resultPassword = "";
            }
        }

        catch (MySqlException sqlError)
        {
            errorMessage.Text = "Ошибка: " + sqlError.Message;

            FileInfo errorLog = new FileInfo("errorLog.txt");

            if (errorLog.Exists == false)
            {
                FileStream errorFs = errorLog.Create();
                errorFs.Close();
            }

            StreamWriter errorSw = errorLog.AppendText();

            errorSw.WriteLine(DateTime.Now + " | " + sqlError.Message);
            errorSw.Close();
        }

        finally
        {
            sqlConnection.Close();
        }

        return resultPassword;

    }   

这里我不能返回resultPassword,因为变量未赋值:|

最佳答案

声明这个变量为

string resultPassword = null;

或者你可以声明为

string resultPassword = String.Empty;

在那种情况下你真的不需要

else
{
            resultPassword = "";
}

因为密码的默认值已经在声明时设置。

关于C# 在 MySQL 查询上设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11308402/

相关文章:

php - 使用 Laravel 4 获取在线用户

mysql - sql building的进出记录

mysql - Joomla mysql 查询中表名开头的 #__ 是什么意思?

c# - Microsoft.Bot.Schema.ErrorResponseException : Operation returned an invalid status code 'BadRequest'

c# - 求和、减法和乘法数组

php - 如果 PDO 事务失败,如何重定向到一个页面?

java - 表未映射的 Hibernate 消息

c# - 为什么我的计算不起作用?

c#优化选择字符串创建循环

c# - 从 C# 代码运行单个 TestFixtures