この関数は、ユーザー ID で検索するため機能します。
private void showList_Click(object sender, EventArgs e)
{
int id = 0;
for (int i = 0; i <= sqlClient.Count("UserList"); i++)
{
Dictionary<string, string> dik = sqlClient.Select("UserList", "userid = " + id);
var lines = dik.Select(kv => kv.Key + ": " + kv.Value.ToString());
userList.AppendText(string.Join(Environment.NewLine, lines));
userList.AppendText(Environment.NewLine);
userList.AppendText("--------------------------------------");
id++;
}
}
メールで検索しているため、この機能は機能しません。
private void login_Click(object sender, EventArgs e)
{
string email = lemail.Text;
Dictionary<string, string> dik = sqlClient.Select("UserList", "firstname = " + email);
var lines = dik.Select(kv => kv.Key + ": " + kv.Value.ToString());
logged.AppendText(string.Join(Environment.NewLine, lines));
}
これは、ログイン ボタンをクリックしたときに表示されるエラー メッセージです。
SQL 構文にエラーがあります。1行目の「@aol.com」付近で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください
データベースで検索した電子メールは、引用符なしで「aces@aol.com」でした。@ 記号が特殊文字であることはわかっているため、@ 記号が競合を引き起こしているというエラー メッセージが表示されましたが、どのフレーズを検索すればよいかわかりません。
また、呼び出されている関数は次のとおりです。
public Dictionary<string, string> Select(string table, string WHERE)
{
//This methods selects from the database, it retrieves data from it.
//You must make a dictionary to use this since it both saves the column
//and the value. i.e. "age" and "33" so you can easily search for values.
//Example: SELECT * FROM names WHERE name='John Smith'
// This example would retrieve all data about the entry with the name "John Smith"
//Code = Dictionary<string, string> myDictionary = Select("names", "name='John Smith'");
//This code creates a dictionary and fills it with info from the database.
string query = "SELECT * FROM " + table + " WHERE " + WHERE + "";
Dictionary<string, string> selectResult = new Dictionary<string, string>();
if (this.Open())
{
MySqlCommand cmd = new MySqlCommand(query, conn);
MySqlDataReader dataReader = cmd.ExecuteReader();
try
{
while (dataReader.Read())
{
for (int i = 0; i < dataReader.FieldCount; i++)
{
selectResult.Add(dataReader.GetName(i).ToString(), dataReader.GetValue(i).ToString());
}
}
dataReader.Close();
}
catch { }
this.Close();
return selectResult;
}
else
{
return selectResult;
}
}
私のデータベーステーブルは「UserList」と呼ばれています
フィールドの順序は次のとおりです。
ユーザーID、電子メール、パスワード、姓、名
どんな助けでも大歓迎です。このサイトは素晴らしいです!