.Net - 我想将 TextBox 中的值与数据库值进行比较
.Net - I want to compare a value from a TextBox with Database values
我有这个 InsertItemTemplate 要插入,在我的例子中,诊断("diagnósticos" 如您所见,葡萄牙语)。
<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,但仍然做不到。我打算做的是 Select 我拥有的所有诊断名称,并与我要插入的诊断进行比较。如果已经存在,则报错,否则,一切正常!
现在,我有这个:
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
在您的 Sql 语句中使用 COUNT(*) 和 Where 子句。
类似于(假设来源是您要比较的文本?),
SqlCommand cmd = new SqlCommand("Select COUNT(*) from Diagnosticos Where Diagnostico_Nome=@Diagnostico_Nome", db);
cmd.Parameters.AddWithValue("@Diagnostico_Nome", (string)source);
var count = (int)cmd.ExecuteScalar();
if (count > 0)
// This exists in the DB
我还建议将您的 SqlConnection 和 SqlCommand 包装在 using 块中。
我有这个 InsertItemTemplate 要插入,在我的例子中,诊断("diagnósticos" 如您所见,葡萄牙语)。
<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,但仍然做不到。我打算做的是 Select 我拥有的所有诊断名称,并与我要插入的诊断进行比较。如果已经存在,则报错,否则,一切正常!
现在,我有这个:
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
在您的 Sql 语句中使用 COUNT(*) 和 Where 子句。
类似于(假设来源是您要比较的文本?),
SqlCommand cmd = new SqlCommand("Select COUNT(*) from Diagnosticos Where Diagnostico_Nome=@Diagnostico_Nome", db);
cmd.Parameters.AddWithValue("@Diagnostico_Nome", (string)source);
var count = (int)cmd.ExecuteScalar();
if (count > 0)
// This exists in the DB
我还建议将您的 SqlConnection 和 SqlCommand 包装在 using 块中。