0

私はC#でasp.netを使用しています.データフィールドFIDが主キーです.FIDが「m001」の場合、次に「m001」と同じ値を入力すると、検証の問題が発生するはずです.コードが必要ですが、今のところ検証の要約を入れていません。

私のasp.netコードは

  <asp:ValidationSummary ID="ValidationSummary1" runat="server" 
        ShowMessageBox="True" DisplayMode="BulletList" 
        HeaderText="Validation issues" ShowSummary="False" ValidationGroup="Validation"/>

<h3> Create New User </h3>
<table> 
<tr>
<td>
    <asp:Label ID="Label5" runat="server" Text="Faculty ID"></asp:Label>
</td>
<td>
    <asp:TextBox ID="txtfid" runat="server" Height="20px" Width="128px"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text="Username"></asp:Label></td>

<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ErrorMessage="Please enter the username" ControlToValidate="txtuser1" Display="None" ValidationGroup="Validation" SetFocusOnError="true"></asp:RequiredFieldValidator>
<td>
<asp:TextBox ID="txtuser1" runat="server" Height="20px" Width="128px" />
</td>
</tr>

<tr>
<td>

同じ FID を繰り返すと、ポップアップ ウィンドウにエラー メッセージが表示されるように、検証コードが必要です。

4

4 に答える 4

0

Googleの主キーの詳細を理解してください。

主キーは自動インクリメント フィールドです。

主キー int sql テーブルにを設定するIs Identity=Yesと、値が自動的にインクリメントされます。コードから値を渡す必要はありません。この要件のコードは必要ありません。

したがって、テーブルは主キーを次のように生成します。1,2,3,4,5,6,......

primarykey: のように表示するときに、主キーの値をフォーマットできます。M001 ,M002,M003,M004.....M011..etc

そのため、複雑で長いロジック コードを減らし、データベース呼び出しを削減してパフォーマンスを向上させることができます。

于 2013-09-25T05:54:22.880 に答える
0

FID に主キーを設定しようとしている場合は、その Autoincrement プロパティを IsIdentity = に設定する必要あります"TRUE""Yes"

そして、コードビハインドで以下に示すように何かを行います:

if(ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
    {
        //Show Duplicate message here
    }
    else
    {
         //Do insertion here
    }
于 2013-09-25T05:54:59.447 に答える
0

SQLException クラスを使用して、主キーの例外をキャッチできます。コードがこのタイプの例外をキャッチしたら、例外番号を確認します。

例外番号が 2627 の場合、ユーザーによるレコードの挿入を停止できます。このリンクを確認してください

http://www.gyansangrah.com/ArticleContent.aspx?ID=catch_primary_key_violation_exception_in_ado_net

他の情報が必要な場合はお知らせください

于 2013-09-25T06:23:18.190 に答える