热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#基础学习笔记(二)

1、Convert类型转换类型如果相兼容的两个变量,可以使用自动类型转换或者强制类型转换,但是,如果两个类型的变量不兼容,比

1、Convert类型转换

类型如果相兼容的两个变量,可以使用自动类型转换或者强制类型转换,

但是,如果两个类型的变量不兼容,比如 string与int或者string 与double,

这个时候我们可以使用一个叫做Convert的转换工厂进行转换。

注意:使用Convert进行类型转换,也需要满足一个条件:

面儿上必须要过的去。如果123abc就不行

    1 string s = "123";

    2 //将字符串转换成int或者double类型

    3 double d = Convert.ToDouble(s);

    4 int n = Convert.ToInt32(s);

    5 Console.WriteLine(d);

    6 Console.WriteLine(n);

 

通过 Convert.ToInt32(能转换成int类型的数据)来把其他类型数据转换成int类型

  • 一切类型都可以转换为string类型

 

练习:

让用户输入姓名 语文 数学 英语 三门课的成绩,然后给用户显示:XX,你的总成绩为XX分,平均成绩为XX分。

    1 Console.WriteLine("请输入你的姓名");

    2 string name = Console.ReadLine();

    3 Console.WriteLine("请输入你的语文成绩");

    4 string strChinese = Console.ReadLine();//读取输入的东西要存在string里面

    5 Console.WriteLine("请输入你的数学成绩");

    6 string strMath = Console.ReadLine();

    7 Console.WriteLine("请输入你的英语成绩");

    8 string strEnglish = Console.ReadLine(); //如果直接加就是778899,要转类型

    9 double Chinese = Convert.ToDouble(strChinese);

   10 double Math = Convert.ToDouble(strMath);

   11 double English = Convert.ToDouble(strEnglish);

   12 double SumScore = Chinese + Math + English;

   13 double AvgDcore = SumScore / 3; //(int)SumScore*1.0 / 3;

   14 Console.WriteLine("{0},你的总成绩为{1}分,平均成绩为{2:0.00}", name, SumScore, AvgDcore);

 

练习2:

    1 //输入一个数字,输出这个数的2

    2 Console.WriteLine("请输入一个数字");

    3 string StrNumber = Console.ReadLine();

    4 double Number = Convert.ToDouble(StrNumber);

    5 Console.WriteLine(Number * 2);

简化一下

    1 Console.WriteLine("请输入一个数字");

    2 double Number = Convert.ToDouble(Console.ReadLine());

    3 Console.WriteLine(Number * 2);

 

 

2、算数运算符

++:分为前++和后++,不管是前++还是后++,最终的结果都是给这个变量加一。

区别表现表达式当中,

如果是前++,则先给这个变量自身加一,然后带着这个加一后的值去参与运算。

即先加再参与运算

如果是后++,则先拿原值参与运算,运算完成后,再讲这个变量自身加一。

即先参与运算再加

--:同上。

例:

    1 int number = 10;

    2 //number++;     //+1

    3 //++number;     //一样+1  可以理解为number=number+1;

    4

    5 //number--;     //-1

    6 --number;       //一样--  同上

    7 Console.WriteLine(number);

例2:

    1 int number = 10;

    2 int result = 10 + number++;

    3 //++在后面表示先用原值进行运算再加1

    4 //可以写成

    5 int result = 10 + number;

    6 number++;

    7

    8 int result = 10 + ++number;

    9 //++在前面表示先加1再进行运算

   10 //可以写成

   11 number++;

   12 int result = 10 + number;

   13

   14 Console.WriteLine(number);

   15 Console.WriteLine(result);

--亦是如此

例3:

    1 int a = 5;

    2 int b = a++ + ++a * 2 + --a + a++;  //5 + 7*2 +6 +6=31 最终a7

    3 //      5       前面也要执行++所以现在是6,所以为7

    4 Console.WriteLine(a);   //5  这是错误的

    5 Console.WriteLine(b);   //5+6*2+4+5=26

3、运算优先级

对于向加加或者减减这样只需要一个操作数就能完成的运算,我们称之为一元运算符。

+ - * / % 对于这些需要两个或以上才能完成运算的操作符,我们称之为二元运算符。

一元运算符的优先级要高于二元运算符

如果在一个表达式当中,既有一元运算符,又有二元运算符,我们首先计算一元运算符。

 

int number=10;

int result=10 + ++number; 先计算

练习:

Var=5*5=25  var2=6   var3=5

上题中如果改成:

Var1=++var2 * var3--;

Var1=?

 

Var1=6*6=36   var2=6   var3=5

 

4、关系运算符

>

<

>&#61;

<&#61;

&#61;&#61;

!&#61;

关系运算符是用来描述两个事物之间的关系

由关系运算符连接的表达式称之为关系表达式。

 

 

5、bool类型

在c#中我们用bool类型来描述对或者错

bool类型的值只有两个 一个true  一个false

    1 bool b &#61; 1500 > 1;  //true

    2 bool b &#61; 3 > 1000;  //false

    3 bool b &#61; 39 <18;   //false

    4 bool b &#61; 20 &#61;&#61; 20;  //true    

 

6、逻辑运算符

&&  逻辑与 全真则真

||      逻辑或 一真则真

!       逻辑非

 

逻辑与&&

表达式1

表达式2

表达式&&表达式

 

逻辑或||

表达式1

表达式2

表达式||表达式

 

又逻辑运算符连接的表达式叫做逻辑表达式

 

逻辑运算符两边放的一般都是关系表达式或者bool类型的值。

 5>3 &&true

 

 3>5||false

逻辑与先计算

短路原则

一个的话没有短路&#xff0c;不推荐

 

 &#xff01;表达式

 逻辑表达式的结果同样也是bool类型

练习&#xff1a;

    1 //让用户输入老苏的语文和数学成绩,输出以下判断是否正确,正确输出True,错误输出False

    2 //1)老苏的语文和数学成绩都大于90

    3 Console.WriteLine("小苏&#xff0c;请输入你的语文成绩");

    4 int Chinese &#61; Convert.ToInt32(Console.ReadLine());

    5 Console.WriteLine("小苏&#xff0c;请输入你的数学成绩");

    6 int Math &#61; Convert.ToInt32(Console.ReadLine());

    7 //bool b &#61; Chinese > 90 && Math > 90;

    8 //Console.WriteLine(b);

    9 //Console.ReadKey();

   10

   11 //2)语文和数学有一门是大于90分的

   12 bool b &#61; Chinese > 90 || Math > 90;

   13 Console.WriteLine(b);

   14 Console.ReadKey();

练习2&#xff1a;

写下判断闰年的表达式,设待判断的年份变量为year.

润年的判定(符合下面两个条件之一):

年份能够被400整除.(2000)

年份能够被4整除但不能被100整除.(2008)

让用户输入一个年份,如果是润年,则输出true,如果不是,则输出false.

2100/1600/1800/2009年是闰年吗&#xff1f;

    1 Console.WriteLine("请输入需要判断的年份");

    2 int year &#61; Convert.ToInt32(Console.ReadLine());

    3 bool b &#61; (year % 400 &#61;&#61; 0) || (year % 4 &#61;&#61; 0 && year % 100 !&#61; 0);

    4 //先与后或&#xff0c;与的优先级高于或

    5 Console.WriteLine(b);

 

 

 

7、复合赋值运算符

int number&#61;10;

&#43;&#61; :

number&#43;&#61;20;

number&#61;number&#43;20; 30

-&#61;

number-&#61;5;

number&#61;number-5; 5

*&#61;

number*&#61;5;

number&#61;number*5; 50

/&#61;

%&#61;

 

 

 

顺序结构&#xff1a;程序从Main函数进入&#xff0c;从上到下一行一行的执行&#xff0c;不会落下任何一行。

分支结构:if  if-else

选择结构&#xff1a;if else-if switch-case

循环结构&#xff1a;while do-while for foreach

 

8、if结构

if语句&#xff1a;

语法&#xff1a;

if(判断条件)

{

要执行的代码;

}

判断条件&#xff1a;一般为关系表达式或者bool类型的值。

执行过程&#xff1a;程序运行到if处&#xff0c;首先判断if所带的小括号中的判断条件&#xff0c;

如果条件成立&#xff0c;也就是返回true&#xff0c;则执行if所带的大括号中的代码&#xff0c;

如果判断条件不成立&#xff0c;也就是返回一个false。则跳过if结构&#xff0c;继续向下执行。

 

if结构的特点&#xff1a;先判断&#xff0c;再执行&#xff0c;有可能一行代码都不执行

用于一种情况的判断。

小练习&#xff1a;

    1 //如果老苏的(chinese  music)

    2 //语文成绩大于90并且音乐成绩大于80

    3 //语文成绩等于100并且音乐成绩大于70,则奖励100.

    4

    5 Console.WriteLine("请输入语文成绩");

    6 int Chinese &#61; Convert.ToInt32(Console.ReadLine());

    7 Console.WriteLine("请输入音乐成绩");

    8 int music &#61; Convert.ToInt32(Console.ReadLine());

    9

   10 if ((Chinese > 90 && music > 80) || (Chinese &#61;&#61; 100 && music > 70))

   11 {

   12     Console.WriteLine("奖励100");

   13 }

小练习2&#xff1a;

    1 //让用户输入用户名和密码,如果用户名为admin,密码为mypass,则提示登录成功.

    2 Console.WriteLine("请输入用户名");

    3 string name &#61; Console.ReadLine();

    4 Console.WriteLine("请输入密码");

    5 string password &#61; Console.ReadLine();

    6

    7 if (name &#61;&#61; "admin" && password &#61;&#61; "mypass")

    8 {

    9     Console.WriteLine("登录成功");

   10 }

 

 

 

9、if-else

语法&#xff1a;

if(判断条件)

{

执行的代码;

}

else

{

执行的代码

}

执行过程&#xff1a;程序执行到if处&#xff0c;首先判断if所带的小括号中的判断条件是否成立&#xff0c;

如果成立&#xff0c;也就是返回一个true&#xff0c;则执行if所带的大括号中的代码&#xff0c;

执行完成后&#xff0c;跳出if-else结构。

如果if所带的小括号中的判断条件不成立&#xff0c;也就是返回一个false&#xff0c;

则跳过if语句&#xff0c;执行else所带的大括号中的语句&#xff0c;执行完成后&#xff0c;跳出if-else结构。

 

if-else特点&#xff1a;先判断&#xff0c;再执行&#xff0c;最少都要执行一条代码。

用于两种情况的判断

 

注意&#xff1a;else永远跟离它最近的那个if配对

练习

    1 //如果小赵的考试成绩大于90(),那么爸爸奖励他100元钱,

    2 //否则的话,爸爸就让小赵跪方便面.

    3 Console.WriteLine("请输入小赵的考试成绩");

    4 int score &#61; Convert.ToInt32(Console.ReadLine());

    5

    6 if (score >&#61; 90)

    7 {

    8     Console.WriteLine("100");

    9 }

   10 else

   11 {

   12     Console.WriteLine("跪方便面");

   13 }

 

 

10、if else-if

作用&#xff1a;用来处理多条件的区间性的判断。

语法&#xff1a;

if(判断条件)

{

要执行的代码;

}

else if(判断条件)

{

要执行的代码;

}

else if(判断条件)

{

要执行的代码;

}

else if(判断条件)

{

要执行的代码;

}

........

else

{

要执行的代码;

}

执行过程&#xff1b;程序首先判断第一个if所带的小括号中的判断条件&#xff0c;如果条件成立&#xff0c;也就是返回一个true&#xff0c;

则执行该if所带的大括号中的代码&#xff0c;执行完成后&#xff0c;立即跳出if else-if结构。

如果第一个if所带的判断条件不成立&#xff0c;也就是返回一个false&#xff0c;则继续向下进行判断&#xff0c;依次的判断每一个if所带

的判断条件&#xff0c;如果成立&#xff0c;就执行该if所带的大括号中的代码&#xff0c;如果不成立&#xff0c;则继续向下判断&#xff0c;

如果每个if所带的判断条件都不成立&#xff0c;就看当前这个if else-if结构中是否存在else。

如果有else的话&#xff0c;则执行else中所带的代码&#xff0c;如果没有else&#xff0c;则整个 if-else if神马都不做。

else可以省略。

练习&#xff1a;

    1 //对学员的结业考试成绩评测(考虑用if好还是用if-else)

    2             //成绩 >&#61; 90 &#xff1a;A

    3             //90 > 成绩 >&#61; 80 &#xff1a;B

    4             //80 > 成绩 >&#61; 70 &#xff1a;C

    5             //70 > 成绩 >&#61; 60 &#xff1a;D

    6             //成绩 <60  &#xff1a;E

    7             Console.WriteLine("请输入学员的考试成绩");

    8             int score &#61; Convert.ToInt32(Console.ReadLine());

    9             

   10             #region if的做法

   11             if (score >&#61; 90)

   12             {

   13                 Console.WriteLine("A");

   14             }

   15             if (score >&#61; 80 && score <90)

   16             {

   17                 Console.WriteLine("B");

   18             }

   19             if (score >&#61; 70 && score <80)

   20             {

   21                 Console.WriteLine("C");

   22             }

   23             if (score >&#61; 60 && score <70)

   24             {

   25                 Console.WriteLine("D");

   26             }

   27             if (score <60)

   28             {

   29                 Console.WriteLine("E");

   30             }

   31             else 注意else永远跟离它最近的那个if配对 所以不能直接写

   32             {

   33                 Console.WriteLine("");

   34             }

   35             #endregion

   36           

   37             #region if-else的做法&#xff08;不推荐&#xff09;else-if更好

   38             if (score >&#61; 90)

   39             {

   40                 Console.WriteLine("A");

   41             }

   42             else    //里边的都是<90

   43             {

   44                 if (score >&#61; 80)

   45                 {

   46                     Console.WriteLine("B");

   47                 }

   48                 else    //<80

   49                 {

   50                     if (score >&#61; 70)

   51                     {

   52                         Console.WriteLine("C");

   53                     }

   54                     else    //<70

   55                     {

   56                         if (score >&#61; 60)

   57                         {

   58                             Console.WriteLine("D");

   59                         }

   60                         else    //<60

   61                         {

   62                             Console.WriteLine("E");

   63                         }

   64                     }

   65                 }

   66             }

   67             #endregion

   68           

   69             #region 最好的方法else-if

   70             if (score >&#61; 90)

   71             {

   72                 Console.WriteLine("A");

   73             }

   74             else if (score >&#61; 80)

   75             {

   76                 Console.WriteLine("B");

   77             }

   78             else if (score >&#61; 70)

   79             {

   80                 Console.WriteLine("C");

   81             }

   82             else if (score >&#61; 60)

   83             {

   84                 Console.WriteLine("D");

   85             }

   86             else

   87             {

   88                 Console.WriteLine("E");

   89             }

   90             #endregion

总结

if处理一种情况

If-else处理两种情况

if else-if处理多种情况

 

几个练习&#xff1a;

题1&#xff1a;

    1 #region 1

    2 //比较3个数字的大小&#xff0c;不考虑相等 输出最大数

    3 Console.WriteLine("请输入第一个数字");

    4 int num1 &#61; Convert.ToInt32(Console.ReadLine());

    5 Console.WriteLine("请输入第二个数字");

    6 int num2 &#61; Convert.ToInt32(Console.ReadLine());

    7 Console.WriteLine("请输入第三个数字");

    8 int num3 &#61; Convert.ToInt32(Console.ReadLine());

    9 #region 1

   10 //第一个数比其他数大

   11 if (num1 > num2 && num1 > num3)

   12 {

   13     Console.WriteLine(num1);

   14 }

   15 //第二个数比其他数大

   16 else if (num2 > num1 && num2 > num3)

   17 {

   18     Console.WriteLine(num2);

   19 }

   20 //第三个数比其他数大

   21 else

   22 {

   23     Console.WriteLine(num3);

   24 }

   25 #endregion

   26 #region 2

   27 //先让第一个数字和第二个数字比较&#xff0c;如果大于第二个数字&#xff0c;再和第三个数字比较

   28 if (num1 > num2)

   29 {

   30     //如果第一个数字比第二个数字大&#xff0c;在和第三个数字比较&#xff0c;成立则最大

   31     if (num1 > num3)

   32     {

   33         Console.WriteLine(num1);

   34     }

   35     //否则第三个数字比第一个大&#xff0c;又因为第一比第二大

   36     else

   37     {

   38         Console.WriteLine(num3);

   39     }

   40 }

   41 //第二个数字大于第一个数字&#xff0c;让第二个和第三个比较&#xff0c;若第二个比第三个大则最大

   42 else

   43 {

   44     if (num2 > num3)

   45     {

   46         Console.WriteLine(num2);

   47     }

   48     //第三个最大

   49     else

   50     {

   51         Console.WriteLine(num3);

   52     }

   53 }

   54 #endregion

   55

   56 #endregion

题2&#xff1a;

    1 //提示用户输入密如果密码是88888则提示正确&#xff0c;

    2 //否则要求再输入一次&#xff0c;如果密码是88888则提示正确&#xff0c;

    3 //否则提示错误,程序结束。

    4 //(如果我的密码里有英文还要转换吗,密码:abc1)

    5

    6 Console.WriteLine("请输入密码");

    7 string password &#61; Console.ReadLine();

    8 if (password &#61;&#61; "88888")

    9 {

   10     Console.WriteLine("输入正确");

   11 }

   12 else

   13 {

   14     Console.WriteLine("请再输入一次");

   15     password &#61; Console.ReadLine();

   16     if (password &#61;&#61; "88888")

   17     {

   18         Console.WriteLine("输入正确");

   19     }

   20     else

   21     {

   22         Console.WriteLine("错误");

   23     }

   24 }

题3&#xff1a;

    1 //提示用户输入用户名&#xff0c;然后再提示输入密码&#xff0c;

    2 //如果用户名是admin并且密码是88888&#xff0c;则提示正确&#xff0c;

    3 //否则&#xff0c;如果用户名不是admin还提示用户用户名不存在,

    4 //如果用户名是admin则提示密码错误.

    5 //多种情况使用else-if

    6

    7 Console.WriteLine("请输入用户名");

    8 string username &#61; Console.ReadLine();

    9 Console.WriteLine("请输入密码");

   10 string password &#61; Console.ReadLine();

   11 if (username &#61;&#61; "admin" && password &#61;&#61; "88888")

   12 {

   13     Console.WriteLine("正确");

   14 }

   15 else if (username &#61;&#61; "admin")

   16 {

   17     Console.WriteLine("密码错误");

   18 }

   19 else if (password &#61;&#61; "88888")

   20 {

   21     Console.WriteLine("用户名错误");

   22 }

   23 else

   24 {

   25     Console.WriteLine("全部错误&#xff0c;退出");

   26 }

题4&#xff1a;

    1 //提示用户输入年龄&#xff0c;如果大于等于18&#xff0c;则告知用户可以查看&#xff0c;

    2 //如果小于10岁&#xff0c;则告知不允许查看&#xff0c;

    3 //如果大于等于10岁并且小于18&#xff0c;则提示用户是否继续查看&#xff08;yesno&#xff09;&#xff0c;

    4 //如果输入的是yes则提示用户请查看&#xff0c;否则提示"退出,你放弃查看"

    5

    6 Console.WriteLine("请输入年龄");

    7 int age &#61; Convert.ToInt32(Console.ReadLine());

    8 if (age >&#61; 18)

    9 {

   10     Console.WriteLine("可以继续查看");

   11 }

   12 else if (age <10)

   13 {

   14     Console.WriteLine("不允许查看");

   15 }

   16 else if (age >&#61; 10 && age <18)

   17 {

   18     Console.WriteLine("是否继续查看&#xff08;yesno&#xff09;");

   19     string option &#61; Console.ReadLine();

   20     if (option &#61;&#61; "yes")

   21     {

   22         Console.WriteLine("请查看");

   23     }

   24     else if (option &#61;&#61; "no")

   25     {

   26         Console.WriteLine("退出,你放弃查看");

   27     }

   28     //else

   29     //{

   30     //    Console.WriteLine("退出,你放弃查看");

   31     //}

   32 }

 

 



推荐阅读
  • 本文介绍了如何使用OpenXML按页码访问文档内容,以及在处理分页符和XML元素时的一些挑战。同时,还讨论了基于页面的引用框架的局限性和超越基于页面的引用框架的方法。最后,给出了一个使用C#的示例代码来按页码访问OpenXML内容的方法。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • 本文介绍了在实现了System.Collections.Generic.IDictionary接口的泛型字典类中如何使用foreach循环来枚举字典中的键值对。同时还讨论了非泛型字典类和泛型字典类在foreach循环中使用的不同类型,以及使用KeyValuePair类型在foreach循环中枚举泛型字典类的优势。阅读本文可以帮助您更好地理解泛型字典类的使用和性能优化。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 集合的遍历方式及其局限性
    本文介绍了Java中集合的遍历方式,重点介绍了for-each语句的用法和优势。同时指出了for-each语句无法引用数组或集合的索引的局限性。通过示例代码展示了for-each语句的使用方法,并提供了改写为for语句版本的方法。 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • 本文介绍了一种在PHP中对二维数组根据某个字段进行排序的方法,以年龄字段为例,按照倒序的方式进行排序,并给出了具体的代码实现。 ... [详细]
author-avatar
鱼db在海
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有