2015-02-23 35 views
0

我有這個InsertItemTemplate插入,在我的情況下,診斷(「診斷」在葡萄牙語,如你所見)。.net - 我想比較TextBox中的值和數據庫值

<InsertItemTemplate> 
     <asp:HiddenField ID="DiagnosticoID" Value='<%# Eval("Diagnostico_ID") %>' runat="server" /> 
     <asp:TextBox ID="DiagnosticoNome" MaxLength="20" Text='<%# Bind("Diagnostico_Nome") %>' runat="server" /> 
     <!--OTHER VALIDATORS HERE--> 
     <asp:CustomValidator 
      ErrorMessage="Esse Diagnóstico já existe!!!" 
      ControlToValidate="DiagnosticoNome" 
      OnServerValidate="MesmoDiagnostico_ServerValidate" 
      Display="Dynamic" 
      ForeColor="#FF000" runat="server" /> 
     <asp:Button ID="Adicionar" runat="server" Text="Adicionar" CommandName="Insert" /> 
     <asp:Button ID="Cancelar" runat="server" Text="Cancelar" CommandName="Cancel" /> 
    </InsertItemTemplate> 

因此,我創建了一個CustomValidator,因爲我想檢查診斷的名稱是否已經存在於數據庫中。我搜索了一下如何在C#上使用SqlConnection,但仍無法做到這一點。我打算做的是選擇我所有的診斷名稱,並與我想要插入的診斷進行比較。如果它已經存在,那麼有一個錯誤,否則,一切都可以!

現在,我有這樣的:

protected void MesmoDiagnostico_ServerValidate(object source, ServerValidateEventArgs args) 
    { 
     SqlConnection db = new SqlConnection("Data Source=localhost;"); 
     db.Open(); 
     SqlCommand cmd = new SqlCommand("Select Diagnostico_Nome from Diagnosticos", db); 


    } 

感謝您的幫助! :P

回答

0

在您的Sql語句中使用COUNT(*)和Where子句。

喜歡的東西(假設源是要比較?文),

SqlCommand cmd = new SqlCommand("Select COUNT(*) from Diagnosticos Where [email protected]_Nome", db); 
cmd.Parameters.AddWithValue("@Diagnostico_Nome", (string)source); 
var count = (int)cmd.ExecuteScalar(); 

if (count > 0) 
    // This exists in the DB 

我也建議你的包裹和SqlConnection的SqlCommand的使用塊。

+0

謝謝,但現在我正在努力與SqlConnection。它總是給我連接錯誤,無論我怎麼說連接字符串/分貝是。我正在使用我在App_Data文件夾中創建的localdb,這是我的webconfig文件上的連接字符串。 Cajux94 2015-02-23 17:34:36