Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.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# 使用like或任何sql查询在c值和sql记录之间进行查找_C#_Sql Server - Fatal编程技术网

C# 使用like或任何sql查询在c值和sql记录之间进行查找

C# 使用like或任何sql查询在c值和sql记录之间进行查找,c#,sql-server,C#,Sql Server,您好,我有一个标签可以获取此格式的数字: 0123-480-1234 这是一个完整的电话号码,包括城市代码和区号 我在SQ L服务器中有一个用于区号数据库的表。 SQ L表:区号 Code Area 480 = 1 580 = 2 更新4已修复问题: SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=db3;Integrated Security=True"

您好,我有一个标签可以获取此格式的数字:

0123-480-1234

这是一个完整的电话号码,包括城市代码和区号

我在SQ L服务器中有一个用于区号数据库的表。 SQ L表:区号

Code Area 480 = 1 580 = 2 更新4已修复问题:

SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=db3;Integrated Security=True");
    conn.Open();
    SqlCommand cmd = new SqlCommand("select count (number) from t2 where number=@number", conn); // select and count number
    cmd.Parameters.AddWithValue("@number", label1.Text); //c# source
    label5.Text=(cmd.ExecuteScalar().ToString()); //show count
    conn.Close();

资料来源:

在不了解实际需求的情况下投入了大量的想象力,但是类似的东西应该在纯SQL中工作

-- Some preparation for testing ...    
IF OBJECT_ID('AreaCode', 'U') IS NOT NULL
    DROP TABLE AreaCode

GO

CREATE TABLE AreaCode
(
    Code INT NOT NULL,
    Area INT NOT NULL
)

GO

INSERT INTO AreaCode VALUES
    (480, 3),
    (580, 2)

GO

-- This is the label you want to check.
DECLARE @LabelForLookUp CHAR(13) = '0123-480-1234'

--Use LIKE to extract its valid code if it matches the strict format.
DECLARE @Code INT = NULL
IF(@LabelForLookUp LIKE '[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]')
    SET @Code = CAST(SUBSTRING(@LabelForLookUp, 6, 3) AS INT)


--This is the area that we will look up in our table.
DECLARE @Area INT = NULL

SELECT @Area = Area
FROM AreaCode
WHERE Code = @Code


-- This variable is null if area was not found, else it is the area we want.
PRINT @Area
编辑:


如果您可以控制C中的@LabelForLookUp,请按照其他答案中的说明使用C对其进行过滤。

要从nnn-nnn-nnnnnn这样的字符串中获取区号,可以使用以下sql语句

DECLARE @Var VARCHAR(20) = '0123-480-1234'

SELECT PARSENAME(REPLACE(@Var, '-','.'),2)

Result:  480
由于它是一个设置为标签的值,因此可以执行以下操作从标签中获取它

string input = LabelControl1.Text.ToString(); 
string areaCode = input.Split(new char[] { '-', '-' })[1]; 

现在,您可以使用此区号值从AreaTable中获取AreaNumber

你的问题不清楚。首先,你有没有写代码?如果是,请在此处显示!您是如何使用区号表来制作label-1的?什么是标签2?看来英语不是你的第一语言。你说哪种语言?试着用谷歌翻译把你的语言转换成英语。你能复习一下你的问题吗?是的,2个表格1获取数字和标签1代码的课程很好。还有电话号码给我。。但我需要把它的区号放进label2就在这里。此外,我还为区号创建了sql数据库,但我如何才能建立此关系?tnx chris您提醒我子字符串的用法!!但我仍然无法从sql表中选择和区分区号,并将其放在标签2上。这取决于您在sql Server和应用程序的交互中使用的是什么。tnx chris有关答案,我尝试了一些代码来比较标签内容和sql Server表上的sql记录请参见更新3,我肯定有什么东西丢失了。我不确定您是否了解应用程序需要以某种方式与SQL Server通信。这已经超出了本问题的范围,但您可以从阅读ADO.NET开始,该ADO.NET可用于从应用程序与SQL Server交互。初学者的好链接:tnx供参考chris,但我是为一家公司编程的,不是一名大学初学者。。本文修复了以下问题:
DECLARE @Var VARCHAR(20) = '0123-480-1234'

SELECT PARSENAME(REPLACE(@Var, '-','.'),2)

Result:  480
string input = LabelControl1.Text.ToString(); 
string areaCode = input.Split(new char[] { '-', '-' })[1];