[英]How to connect C# and PostgreSQL
我有2個表單,first1有用戶名,密碼框和登錄按鈕。 當我點擊登錄按鈕時,它將比較PostgresSQL中的用戶名密碼。 但是這條線路出錯了
NpgsqlDataReader dr = cmd.ExecuteReader(); [錯誤:42P01:關系“登錄”不存在]
這是我的代碼:
private void button1_Click(object sender, EventArgs e)
{
bool blnfound = false;
NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=admin123;Database=Login");
conn.Open();
NpgsqlCommand cmd = new NpgsqlCommand("SELECT * FROM login WHERE name='" + tb1.Text + "' and password = '" + tb2.Text + "'",conn);
NpgsqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
blnfound = true;
Form2 f5 = new Form2();
f5.Show();
this.Hide();
}
if (blnfound == false)
{
MessageBox.Show("Name or password is incorrect", "Message Box", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
dr.Close();
conn.Close();
}
如果表名登錄正確,請檢查您的數據庫。 順便說一句,您需要過濾輸入值,因為您的代碼容易受到SQL注入攻擊。
您還應該嘗試更改表或數據庫名稱,它們都被稱為登錄,這可能會導致問題。
Server=127.0.0.1;Port=5432;User Id=postgres;Password=admin123;**Database=Login**
登錄是數據庫名稱
"SELECT * FROM **login** WHERE name='" + tb1.Text + "' and password = '" + tb2.Text + "'",conn
登錄是表名
如果這是正確的,那么檢查表登錄是否存在於數據庫LOGIN中 。
ERROR: 42P01: relation "login" does not exist
關系意味着表
此外,您不能在Postgres中使用以大寫字母開頭的表名。 如果您的表名以大寫字母開頭,則需要將其括在雙引號內。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.