我是編程新手,特別是在使用sql server時。我有一個帶有文本框和提交按鈕的用戶頁面。當用戶輸入信息到文本框並按下按鈕時,信息將被添加到數據庫中。數據庫中有一列用戶標識符,應在所有信息添加到數據庫後創建。用戶標識符應由UserLastName和AutoIncrementNumber(自動分配給新行的數據庫的列)組成。我有一個用於此UserID的函數專欄,我不知道如何使一切工作。請幫幫我。 謝謝!使用函數插入sql數據庫
這裏是代碼:
using (SqlConnection conn = new SqlConnection(@"Data Source=MyDataBase;Initial Catalog=MyDataBase;Integrated Security=True;"))
SqlCommand CmdSql = new SqlCommand
("INSERT INTO [tbluser] ([UserID],[UserLastName], [UserFirstName], [UserMiddleInitial] SELECT [dbo].[usernamehandle](@UserFirstName),@UserLastName, @UserFirstName, @UserMiddleInitial", conn);
conn.Open();
CmdSql.Parameters.AddWithValue("@UserLastName", txtNewUserLN.Text.ToString());
CmdSql.Parameters.AddWithValue("@UserFirstName", txtNewUserFN.Text.ToString());
CmdSql.Parameters.AddWithValue("@UserMiddleInitial", txtNewUserMI.Text.ToString());
CmdSql.Connection = conn;
CmdSql.ExecuteNonQuery();
conn.Close();
這裏是功能:
USE [MyDataBase]
GO
/****** Object: UserDefinedFunction [dbo].[usernamehandle] Script Date: 04/07/2013 17:25:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[usernamehandle]
(@newuserName nchar(10))returns nchar(10)
AS
BEGIN
DECLARE @s2 nchar(256)
SET @s2 = ''
DECLARE @p int
DECLARE @ULN char(256)
DECLARE @UNAI int
SELECT @ULN = UserLastName FROM tblUser
SELECT @UNAI = UserNameAutoIncre FROM tbluser
SET @s2 = @UNAI
while @p <=6 begin
DECLARE @c int
SET @c = ascii(substring(@newUserName, @p, 1))
SET @s2 += char(@c)
end
return @s2
end
我不確定你爲什麼使用這樣的SQL函數?我想你應該看看存儲過程和數據源對象。 數據源對象將爲您生成大量代碼,並且是開始編寫新程序的好地方。但在代碼的上下文中,存儲過程可能會返回一個數據集或輸出參數。 – Mayhem50 2013-04-08 02:57:21