本人是新手。剛剛學(xué)習(xí)ASP的知識。。。下面是本人用SQL存儲過程進(jìn)行添加用戶。
textbox 1??? 是用戶名,
textbox2,textbox3---2個都是密碼
textbox 4??????? 問題 ,
textbox5?????????? 答案,
textbox6?????????? 郵箱,
名稱
類型
約束
説明
logon_name
varchar(50)
無重復(fù)
主鍵,注冊帳號
logon_password
varchar(20)
?
帳號密碼
sex
varchar(10)
?
性別
question
varchar(100)
?
密碼找回問題
answer
varchar(100)
?
密碼找回答案
E_mails
varchar(100)
?
郵箱
?
?
protected void Button1_Click(object sender, EventArgs e)??????? {//檢測驗證控件是否通過驗證??????????? if (IsValid)??????????? {??? //從配置文件App.config文件的strConnection節(jié)點(diǎn)中獲得連接語句??????????????? string strConnection = "Data Source=20100908-1712;Initial Catalog=圖書館;Integrated Security=True";??????????????? //通過連接語句實(shí)例化SQL連接對象??????????????? SqlConnection sqlCon = new SqlConnection(strConnection);??????????????? using (sqlCon)??????????????? {??????????????????? sqlCon.Open();??????????????????? SqlCommand sqlCom = new SqlCommand();??????????????????? //命令類型為存儲過程??????????????????? sqlCom.CommandType = CommandType.StoredProcedure;??????????????????? sqlCom.Connection = sqlCon;??????????????????? sqlCom.CommandText = "addlogon";??????????????????? // 進(jìn)行信息的添加:數(shù)據(jù)庫信息與textBox中的信息連接,并在數(shù)據(jù)庫中存入,但是不顯示信息??????????????????? SqlParameter parm1 = new SqlParameter("@logon_name", SqlDbType.NVarChar, 50);??????????????????? parm1.Value = TextBox1.Text;??????????????????? sqlCom.Parameters.Add(parm1);??????????????????? SqlParameter pew1 = new SqlParameter("@logon_password", SqlDbType.NVarChar, 50);??????????????????? pew1.Value = TextBox2.Text;??????????????????? sqlCom.Parameters.Add(pew1);??????????????????? SqlParameter sex1 = new SqlParameter("@sex", SqlDbType.NVarChar, 50);??????????????????? sex1.Value = DropDownList1.SelectedValue;??????????????????? sqlCom.Parameters.Add(sex1);??????????????????? SqlParameter question1 = new SqlParameter("@question", SqlDbType.NVarChar, 50);??????????????????? question1.Value = TextBox4.Text;??????????????????? sqlCom.Parameters.Add(question1);??????????????????? SqlParameter answer1 = new SqlParameter("@answer", SqlDbType.NVarChar, 50);??????????????????? answer1.Value = TextBox5.Text;??????????????????? sqlCom.Parameters.Add(answer1);??????????????????? SqlParameter mails1 = new SqlParameter("@E_mails", SqlDbType.NVarChar, 50);???????????????????? mails1.Value = TextBox6.Text;???????????????????? sqlCom.Parameters.Add(mails1);??????????????????? int i = sqlCom.ExecuteNonQuery();??????????????????? if (i == 0)??????????????????? { Response.Write("請輸入信息"); }??????????????????? //進(jìn)行提示是否命令執(zhí)行成功!if成功。、則顯示successed。否則filed try again。??????????????????? if (i > 0)??????????????????? {??????????????????????? Response.Write("感謝你的注冊,您已經(jīng)注冊成功!");??????????????????????? // 注冊成功后。所有的信息將全部清空??????????????????????? TextBox1.Text = "";??????????????????????? TextBox2.Text = "";??????????????????????? TextBox3.Text = "";
??????????????????????? TextBox5.text?=?"";??????????????????????? TextBox4.Text = "";??????????????????????? TextBox6.Text = "";??????????????????? }??????????????????? else??????????????????? {??????????????????????? // 注冊失敗后。所有的信息將不會被清空。保留便于修改??????????????????????? Response.Write("抱歉!你注冊失敗!請重新注冊!");
??????????????????? }??????????????? }??????????? }
?
這是添加注冊用戶信息。。? 我想實(shí)現(xiàn)防止同樣的用戶名注冊。就是說。123這個用戶已經(jīng)被人注冊了。別人就不能注冊這個“123”這個帳號。。
還有。在最后添加成功后,提示成功信息5秒。然后頁面跳轉(zhuǎn)
??
是否需要改動數(shù)據(jù)庫。要添加什么約束。在什么地方添加。。請大蝦們幫幫忙。
?
還是說。我的代碼出現(xiàn)錯誤。無法添加約束??。。請求幫忙解決問題。。?
5 回答

湖上湖
TA貢獻(xiàn)2003條經(jīng)驗 獲得超2個贊
不要一點(diǎn)按鈕就添加,步驟:
1.點(diǎn)擊按鈕時首先根據(jù)輸入的用戶名去數(shù)據(jù)庫查詢,
2.查詢結(jié)果:如果已經(jīng)有這個用戶名,返回并提示用戶,如果沒有,則執(zhí)行你寫的添加代碼。

小唯快跑啊
TA貢獻(xiàn)1863條經(jīng)驗 獲得超2個贊
不爭議把用戶名設(shè)置為主鍵。
添加用戶的時候,用一個select查找看庫里是否有重復(fù)的用戶,如果返回記錄大于0則說明有相同的用戶名,則提示用戶名已存在。

Cats萌萌
TA貢獻(xiàn)1805條經(jīng)驗 獲得超9個贊
把檢查用戶名是否重復(fù)的邏輯寫進(jìn)添加的存儲過程里,先檢查然后再添加,給存儲過程一個輸出參數(shù),然后程序里面根據(jù)輸出參數(shù)的值在界面給用戶提示,檢查用戶名是否重復(fù)之類的最好在客戶端用ajax方式給用戶一個即時的提醒...

MMMHUHU
TA貢獻(xiàn)1834條經(jīng)驗 獲得超8個贊
如果設(shè)定主鍵的話,你執(zhí)行添加動作的時候會返回錯誤的,那基本上這個時候直接設(shè)定錯誤訊息就可以了
- 5 回答
- 0 關(guān)注
- 746 瀏覽
添加回答
舉報
0/150
提交
取消