Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文本框或代码不区分大小写_C#_Asp.net_Sql Server_Textbox - Fatal编程技术网

C# 文本框或代码不区分大小写

C# 文本框或代码不区分大小写,c#,asp.net,sql-server,textbox,C#,Asp.net,Sql Server,Textbox,我在文本框中输入一个名称,例如“John”,并将其保存在数据库中,然后再次输入未保存的“John”。但如果我输入“john”,它会再次保存这个。。。我需要它来救约翰,反之亦然 好的,这是一个正常的文本框: <asp:TextBox ID="TextBox2" runat="server" Width="80%" BorderColor="Black" MaxLength="127"></asp:TextBox> 代码如下:

我在文本框中输入一个名称,例如“John”,并将其保存在数据库中,然后再次输入未保存的“John”。但如果我输入“john”,它会再次保存这个。。。我需要它来救约翰,反之亦然

好的,这是一个正常的文本框:

 <asp:TextBox ID="TextBox2" runat="server" Width="80%" BorderColor="Black" 
                    MaxLength="127"></asp:TextBox>

代码如下:

int k= 0
SqlConnection dataConnection = new SqlConnection();
            dataConnection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            SqlCommand dataCommand =
                    new SqlCommand("select Name from Groups", dataConnection);


            ArrayList names = new ArrayList();
            dataConnection.Open();
            SqlDataReader rdr = dataCommand.ExecuteReader();
            while (rdr.Read())
            {
                names.Add(rdr.GetString(0));
            }
            dataCommand.Dispose();
            dataConnection.Dispose();

            //to check if name already used..
            for (int i = 0; i < names.count; i++)
            {
                if (Name != (string)names[i])
                {
                    k = 1;

                }
                else
                {
                    Label1.Text = "Name is already present";
                    Label1.Visible = true;
                    k = 0;
                    break;
                }
            }
            if (k == 1)
            {
                Insertname();
            }
int k=0
SqlConnection dataConnection=新的SqlConnection();
dataConnection.ConnectionString=ConfigurationManager.ConnectionString[“ConnectionString”]。ConnectionString;
SqlCommand数据命令=
新的SqlCommand(“从组中选择名称”,dataConnection);
ArrayList name=新的ArrayList();
dataConnection.Open();
SqlDataReader rdr=dataCommand.ExecuteReader();
while(rdr.Read())
{
name.Add(rdr.GetString(0));
}
dataCommand.Dispose();
dataConnection.Dispose();
//检查名称是否已被使用。。
对于(int i=0;i
一种方法是每次在将其呈现给数据库之前将其更改为适当的大小写

要使其符合正确的情况,可以尝试
System.Globalization.TextInfo
中的
ToTitleCase()
方法

请注意,
ToTitleCase()
提供了任意大小写行为,而不是语言正确的行为。例如,“战争与和平”在英语中应该有一个小写的a。这对于O'Brien这样的情况尤其有问题,因为
ToTitleCase
将输出为O'Brien


最后,让数据库保存东西可能更容易

一种方法是每次在将其呈现给数据库之前将其更改为适当的大小写

if (Name != (string)names[i])
{
    ...
}
要使其符合正确的情况,可以尝试
System.Globalization.TextInfo
中的
ToTitleCase()
方法

请注意,
ToTitleCase()
提供了任意大小写行为,而不是语言正确的行为。例如,“战争与和平”在英语中应该有一个小写的a。这对于O'Brien这样的情况尤其有问题,因为
ToTitleCase
将输出为O'Brien

最后,让数据库保存东西可能更容易

if (Name != (string)names[i])
{
    ...
}
可能成为

if (!Name.Equals((string)names[i], StringComparison.InvariantCultureIgnoreCase))
{
    ...
}
可能成为

if (!Name.Equals((string)names[i], StringComparison.InvariantCultureIgnoreCase))
{
    ...
}

该洗个冷水澡了

首先,如果要检查名称是否存在,如果不存在则插入,则必须在服务器上进行检查,并进行适当的隔离和事务控制。除了通过检查客户机上的名称和数组的效率非常低之外,您所拥有的内容是不正确的,因为它会检查名称是否不存在(过去时)。它不考虑并发,因此两个请求可以尝试插入相同的名称。


其次,如果您需要数据库中的唯一性,那么可以通过表约束来强制执行它。如果需要不区分大小写的唯一名称,则应在“名称”列的表中添加一个,并确保该列使用不区分大小写的名称。

冷水浴时间到了

首先,如果要检查名称是否存在,如果不存在则插入,则必须在服务器上进行检查,并进行适当的隔离和事务控制。除了通过检查客户机上的名称和数组的效率非常低之外,您所拥有的内容是不正确的,因为它会检查名称是否不存在(过去时)。它不考虑并发,因此两个请求可以尝试插入相同的名称。


其次,如果您需要数据库中的唯一性,那么可以通过表约束来强制执行它。如果需要不区分大小写的唯一名称,则应在“名称”列的表中添加一个,并确保该列使用不区分大小写的名称。

为什么不在比较逻辑中强制使用大写(或小写):

如果(Name.ToUpper()!=(字符串)名称[i].ToUpper)


HTH

为什么不在比较逻辑中强制使用大写(或小写):

如果(Name.ToUpper()!=(字符串)名称[i].ToUpper)


HTH

您用于DB访问的API是什么?向我们展示您的查询和插入代码,以便我们可以建议MOD。在
InsertName()
中有什么代码?您用于DB访问的API是什么?向我们展示您的查询和插入代码,以便我们可以建议MOD。在
InsertName()
中有什么代码?