總體思路.根據用戶輸入的用戶名和密碼,來判斷,和數據庫里面存的是不是一樣,如果一樣就表明登錄成功,否則就登錄失敗。
方案一:
1.select* from 表名 where username="用戶輸入的用戶名"
2.如果存在 reader.Read(),即用戶名存在,接著就判斷用戶輸入的密碼,和取到的密碼(reader.GetString(reader.GetOridinal("密碼字段")))是不是一樣,如果一樣就登錄成功,否則就登錄失敗。
方案二:
select * from 表名 where username="用戶輸入的用戶名" and password="用戶輸入的密碼",如果查得到數據,就登錄成功。否則登錄失敗。
下面,我們來使用方案一,來做一個登錄的案例吧。
這里,為了方便,還是用控制臺應用程序吧。
前奏:
我這次要把連接字符串寫在配置文件中,
1.首先我們要添加命名空間的引用:System.Configuration;
2.然后在我們的配置文件AppConfig中,的<Configuration>節點下面添加連接字符串的相關節點信息。
<configuration><connectionStrings> <add name="ConStr" connectionString="server=.;database=DB_USERS;uid=sa;pwd=Pasword_1"/> </connectionStrings> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup></configuration>
標紅顏色的地方,就是我們添加的連接字符串節點信息;
3.然后我習慣,創建一個DBHelper類,在里面聲明一個方法來獲取,連接字符串:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Configuration;//在項目中添加這個的引用,并在這個類里面添加這個命名空間namespace ADO.NET登錄案例1{ public class DBHelper { public static string GetConnectionStrings() { //使用ConfigurationManager類,來獲取連接字符串的信息。 return ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString; } }}4.這次我依然使用存儲過程,創建一個根據用戶名查詢的存儲過程:
IF OBJECT_ID('Ins_User','P') IS NOT NULL DROP PROCEDURE Ins_User GO CREATE PROCEDURE Ins_User @name NVARCHAR(20) AS SELECT * FROM dbo.T_USERS WHERE T_NAME=@name GO 存儲過程
前期的準備工作,做好之后,現在我們來開始寫程序,編碼實現:
思路:方案一,說了,首先我們當然是讓用戶輸入,用戶名和密碼,然后根據用戶輸入的用戶名來查詢數據庫對應的表中,有沒有相關數據,如果沒有的話,就提示用戶名不存在,有的話,就繼續判斷用戶輸入的密碼是否正確(拿用戶輸入的密碼和數據庫對應的密碼,進行判斷),如果正確,就提示登錄成功,否則就提示密碼錯誤。
新聞熱點
疑難解答
圖片精選