2016-05-14 6 views
2

私のエラーです:は、ExecuteNonQuery C#&SQL Serverの

An exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll but was not handled in user code

Additional information: The parameterized query '(@username nvarchar(3),@password nvarchar

は、これが私のテーブルです:

CREATE TABLE [dbo].[User] 
(
    [Username] VARCHAR (250) NOT NULL, 
    [Pasword] VARCHAR (MAX) NOT NULL, 
    [FName]  VARCHAR (MAX) NOT NULL, 
    [LName]  VARCHAR (MAX) NOT NULL, 
    [Location] VARCHAR (MAX) NOT NULL, 
    [Profesion] VARCHAR (MAX) NOT NULL, 
    [email]  VARCHAR (MAX) NOT NULL, 
    [gender] VARCHAR (MAX) NOT NULL, 
    [money]  INT   NOT NULL, 
    [property] VARCHAR (MAX) NULL, 

    PRIMARY KEY CLUSTERED ([Username] ASC) 
); 

そして、これはC#のコードです:

if (Page.IsValid) 
{ 
    SqlCommand NewUser = new SqlCommand("INSERT INTO [User] Values (@username,@password,@name,@lastname,@location,@profesion,@email,@gender,@money,@pro);", c); 
    NewUser.Connection = c; 

    NewUser.Parameters.AddWithValue("@username", txtuser.Text); 
    NewUser.Parameters.AddWithValue("@password", txtpass.Text); 
    NewUser.Parameters.AddWithValue("@name", txtFName.Text); 
    NewUser.Parameters.AddWithValue("@lastname", txtLName.Text); 
    NewUser.Parameters.AddWithValue("@location", ddlcountry.SelectedItem.Text); 
    NewUser.Parameters.AddWithValue("@profesion", txtprofession.Text); 
    NewUser.Parameters.AddWithValue("@email", txtemail.Text); 
    NewUser.Parameters.AddWithValue("@gender", rbgendere.SelectedItem.Text); 
    NewUser.Parameters.AddWithValue("@money", 0); 
    NewUser.Parameters.AddWithValue("@pro", null); 

    Session["CurentUserid"] = txtuser.Text; 

    c.Open(); 
    NewUser.ExecuteNonQuery(); 
    c.Close(); 

    Session["Conect"] = (bool)true; 
    Response.Redirect("Finish Had Member.aspx", true); 
} 

を助けてください
+1

このエラーメッセージは私には見えません。 *完全な*エラーメッセージを投稿してください。 –

+0

System.Data.dllで 'System.Data.SqlClient.SqlException'型の例外が発生しましたが、ユーザーコードで処理されませんでした。 追加情報:パラメータ付きクエリ '(@username nvarchar(3)、@ password nvarchar(6) )、@ name nvarchar(3)、@ 'は提供されていないパラメータ' @pro 'を期待しています –

+0

これを含めるように質問を編集してください –

答えて

9

私はあなたが問題だと思っています。 @proの値としてnullを入力してください。 AddWithValueのためのドキュメントから:

Use DBNull.Value instead of null , to indicate a null value.

しかし、私はまたして起動するAddWithValueの使用を避けることをお勧め - そしてValueプロパティを設定し、Addを呼び出し、パラメータの型を指定します。例:

NewUser.Parameters.Add("@money", SqlDbType.Int).Value = 0; 

詳細については、this blog postを参照してください。

+0

天才です –

関連する問題