Smobiler實現美觀登入介面——C# 或.NET Smobiler例項開發手機app(二)
目錄
(3) HandElectricity的標題的label屬性
一、 本文目標
初級版,請看我的上一篇博文自行補腦哦,這裡就不在贅述了。
二、 準備工作
1、 資料庫
本文采用的是SqlSever2008的資料庫,暫時的資料表設計如下:
表名為:HE_User 用於儲存使用者的賬號密碼等資訊,其它的表現在還用不上,暫時不講。
下表為登入的賬號密碼,這裡會涉及到一個知識點,就是如何設定sqlsever的id自增。
這裡用到了identity關鍵字:indentity(a,b),a b均為正整數,a表示開始數,b表示步長,indentity(1,1)就代表從1開始,每次增加1 。下面是我建立id欄位的程式碼。
id int IDENTITY(1,1) not null CONSTRAINT pk_id PRIMARY KEY
2、 材料
一張背景圖片,一張背景透明的LOGO。
在ElectricityAPP下新建窗體,命名為frmLogin。
把背景圖命名為bg,LOGO的圖片命名為LOGO(命名不要為中文都行)放到Image這個資料夾裡面。
三、 介面佈局
1、設定控制元件的屬性值
再次基礎操作返回上一篇部落格視訊講解。這裡主要講一些細節和美觀的問題。
先往介面中拖入一個panel設定dock屬性為fill。
(1) 輸入框
輸入框的name設定為txtUerName和ytxtPassword(這是賬號和密碼的輸入框)。
(2) 圖片屬性
(3) HandElectricity的標題的label屬性
(4)登入按鈕
(5)版權申明
Text的內容為:Copyright ©2018-2018 DJun. All rights reserved.
(6) 記住密碼
這裡只能幫到這裡了。要我的素材的話,你可以評論或郵箱[email protected]聯絡我發給你。
2、 事件程式碼
(1) 登入按鈕
我在這裡寫一個函式IsConnectDB來返回登入狀態的。
登入按鈕的Press事件:
a. 需要判斷是否勾選儲存密碼的checkbox。
b. 連線資料庫(我使用的是Sqlsever資料庫,這裡需要開啟資料庫遠端連線的許可權,把這個問題解決了在執行程式碼測試!)
/// <summary>
/// 驗證使用者名稱和密碼
/// </summary>
/// <param name="userName"></param>
/// <param name="passWord"></param>
private int IsConnetDB(string userName, string passWord)
{
try
{
SqlConnection conn = new SqlConnection("server=伺服器的ip地址;database=HandElectricity; uid=sa;pwd=123");
conn.Open();
string sqlcmd = "select count(*) from [HE_User] where username= '" + userName + "' and password='" + passWord + "'";
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sqlcmd;
int result = Convert.ToInt32(cmd.ExecuteScalar());
conn.Close();
if (result == 1)
{
//登入成功
MessageBox.Show("登入成功!");
//frm_Main fm = new frm_Main();
//Show(fm);
}
else
{
MessageBox.Show("賬號或密碼錯誤!");
return 0;
}
}
catch (Exception ex)
{
Toast(ex.Message);
}
return 1;
}
private void btnLogon_Click(object sender, EventArgs e)
{
try
{
string userName = txtUserName.Text.Trim();
string passWord = txtPassword.Text.Trim();
if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(passWord))
{
throw new Exception("使用者名稱或密碼不能為空!");
}
int result = IsConnetDB(userName, passWord);
LoadClientData(MobileServer.ServerID + "user", userName);
//登入成功才記住密碼
if (result == 1 && chkRememberPwd.Checked == true)
{
LoadClientData(MobileServer.ServerID + "pwd", passWord);
}
}
catch (Exception ex)
{
Toast(ex.Message);
}
}
(2) 使用驗證碼登入
如果需要真正的驗證碼,需要另行購買簡訊的API介面。
這裡把傳送了的手機號碼儲存在了一個記事本里面,按理來說這是需要加密處理的,我這裡沒有加密。
private void btnVerify_Click(object sender, EventArgs e)
{
try
{
string userID = txtUserName.Text.Trim();
if (userID.Length != 11)
{
MessageBox.Show("請輸入正確的手機號碼!");
}
else
{
FileStream fs;
if (File.Exists("./logMobile.txt"))
{
fs = new FileStream("./logMobile.txt", FileMode.Open);
}
else
{
fs = new FileStream("./logMobile.txt", FileMode.CreateNew);
}
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(userID);
fs.Close();
MessageBox.Show("驗證碼傳送成功,注意接收!");
}
}
(3) 其它的按鈕
都是開啟其它的窗體,手機上自帶返回功能和窗體覆蓋功能的。
四、 執行工作
有的朋友執行的時候發現問題了,就是如何把啟動項設定成frmLogin這個登入介面。右鍵點選檢視frmMain的程式碼。然後請看下圖,更改即可。
本文到此就結束了,如果您有問題可以評論或者郵箱[email protected]聯絡我哦~
下一篇文章:Smobiler實現主介面(上)——C# 或.NET Smobiler例項開發手機app(三)