私はプログラミング、特に sql server の使用が初めてです。テキストボックスと送信ボタンのあるユーザーページがあります。ユーザーがテキストボックスに情報を入力してボタンを押すと、その情報がデータベースに追加されます。データベースには、すべての情報がデータベースに追加された後に作成する必要がある列 UserID があります。UserID は、UserLastName と AutoIncrementNumber (新しい行に自動的に割り当てられるデータベースの列) で構成する必要があります。列と私はすべてを機能させる方法がわかりません。私を助けてください。ありがとうございました!
コードは次のとおりです。
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