迷恋自留地 发表于 2021-4-24 20:06

C#学习笔记4月第四周

本周笔记-阅读大纲:

1.解决git 提交报fatal: unable to access ‘ ‘: The requested URL returned error: 403 错
2.C#生成Guid的几种方式
3.使用七牛云上传文件报错incorrect region, please use up-z1.qiniup.com
4.C# 之 Int16 Int32 Int64 的区别
5.C# List泛型集合中的GroupBy<>用法
6.上传Excel转换成DataTable方法



## 解决git 提交报fatal: unable to access ‘ ‘: The requested URL returned error: 403 错

最近用Git提交代码时,一直报如标题所示的错误。百度了很多都无法解决,包括改更改配置,SSh等。最后在一个论坛上,说可能之前输入的账号或密码有误。尝试后,完美解决。
解决方法:

找到如下图的位置:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210421182352763.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNzMyMzM2,size_16,color_FFFFFF,t_70)
可以在控制面版里删除windows保存的账号密码,即这里的操作是,点击“从保管库中删除”,我删除之后再次提交时,就可以再次输入账号密码了,输入正确的账号密码之后再推送就不报错了。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210421182521815.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNzMyMzM2,size_16,color_FFFFFF,t_70)


![在这里插入图片描述](https://img-blog.csdnimg.cn/20210421182511518.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNzMyMzM2,size_16,color_FFFFFF,t_70)


## C#生成Guid的几种方式

```csharp
1. var uuid = Guid.NewGuid().ToString(); // 9af7f46a-ea52-4aa3-b8c3-9fd484c2af12

2. var uuidN = Guid.NewGuid().ToString("N"); // e0a953c3ee6040eaa9fae2b667060e09

3. var uuidD = Guid.NewGuid().ToString("D"); // 9af7f46a-ea52-4aa3-b8c3-9fd484c2af12

4. var uuidB = Guid.NewGuid().ToString("B"); // {734fd453-a4f8-4c5d-9c98-3fe2d7079760}

5. var uuidP = Guid.NewGuid().ToString("P"); // (ade24d16-db0f-40af-8794-1e08e2040df3)

6. var uuidX = Guid.NewGuid().ToString("X"); // {0x3fa412e3,0x8356,0x428f,{0xaa,0x34,0xb7,0x40,0xda,0xaf,0x45,0x6f}}
```


## 使用七牛云上传文件报错incorrect region, please use up-z1.qiniup.com
>400: {"error":"incorrect region, please use up-z1.qiniup.com"}

### 问题原因:
创建七牛云存储空间时选择了华南地区,但上传文件的配置类中配置了其他地区

### 解决办法:
在配置Configuration类的时候,按需选择Zone的类型即可
>//Zone.zone0:华东
>//Zone.zone1:华北
>//Zone.zone2:华南
>//Zone.zoneNa0:北美
//———http上传,自动识别上传区域——
//Zone.httpAutoZone
//———https上传,自动识别上传区域——
//Zone.httpsAutoZone
//指定上传文件服务器地址:
Configuration cfg = new Configuration(Zone.zone2());




## C# 之 Int16 Int32 Int64 的区别

int16 值类型表示值介于 -32768 到 +32767 之间的有符号整数。

Int32 值类型表示值介于 -2,147,483,648 到 +2,147,483,647 之间的有符号整数。

Int64 值类型表示值介于 -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 之间的整数。

----------------------------------------------------------------------------------------------------------------------------

short 关键字表示一种整数数据类型,该类型根据下表显示的大小和范围存储值。

short  -32768 到 327687(-2^15 到 2^15-1)  有符号16位整数  System.Int16  

int 关键字表示一种整型,该类型根据下表显示的大小和范围存储值。

int  -2,147,483,648 到 2,147,483,647(-2^31 到 2^31-1)  有符号32位整数  System.Int32

long 关键字表示一种整型,该类型根据下表显示的大小和范围存储值。

long  -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807(-2^63 到 2^63-1)  有符号64位整数  System.Int64

## C# List泛型集合中的GroupBy<>用法

```csharp
   var Sample = ListGoods.GroupBy(x => x.GoodsCode+x.GoodsName);
            var listgoodinput = new List<GoodsInput>();
            foreach (IGrouping<string, ImportGoodDto> info in Sample)
            {
                List<ImportGoodDto> aggregate = info.ToList<ImportGoodDto>();//分组后的集合
            }
```



## 上传Excel转换成DataTable方法

```csharp
      /// <summary>
      /// 将excel导入到datatable
      /// </summary>
      /// <param name="filePath">excel路径</param>
      /// <param name="isColumnName">第一行是否是列名</param>
      /// <returns>返回datatable</returns>
      public static DataTable ExcelToDataTable(string filePath, bool isColumnName)
      {
            DataTable dataTable = null;
            FileStream fs = null;
            DataColumn column = null;
            DataRow dataRow = null;
            IWorkbook workbook = null;
            ISheet sheet = null;
            IRow row = null;
            ICell cell = null;
            int startRow = 0;
            try
            {
                using (fs = System.IO.File.OpenRead(filePath))
                {
                  // 2007版本
                  if (filePath.IndexOf(".xlsx") > 0)
                        workbook = new XSSFWorkbook(fs);
                  // 2003版本
                  else if (filePath.IndexOf(".xls") > 0)
                        workbook = new HSSFWorkbook(fs);

                  if (workbook != null)
                  {
                        sheet = workbook.GetSheetAt(0);//读取第一个sheet,当然也可以循环读取每个sheet
                        dataTable = new DataTable();
                        if (sheet != null)
                        {
                            int rowCount = sheet.LastRowNum;//总行数
                            if (rowCount > 0)
                            {
                              IRow firstRow = sheet.GetRow(0);//第一行
                              int cellCount = firstRow.LastCellNum;//列数

                              //构建datatable的列
                              if (isColumnName)
                              {
                                    startRow = 1;//如果第一行是列名,则从第二行开始读取
                                    for (int i = firstRow.FirstCellNum; i < cellCount; ++i)
                                    {
                                        cell = firstRow.GetCell(i);
                                        if (cell != null)
                                        {
                                          if (cell.StringCellValue != null)
                                          {
                                                column = new DataColumn(cell.StringCellValue);
                                                dataTable.Columns.Add(column);
                                          }
                                        }
                                    }
                              }
                              else
                              {
                                    for (int i = firstRow.FirstCellNum; i < cellCount; ++i)
                                    {
                                        column = new DataColumn("column" + (i + 1));
                                        dataTable.Columns.Add(column);
                                    }
                              }

                              //填充行
                              for (int i = startRow; i <= rowCount; ++i)
                              {
                                    row = sheet.GetRow(i);
                                    if (row == null) continue;

                                    dataRow = dataTable.NewRow();
                                    for (int j = row.FirstCellNum; j < cellCount; ++j)
                                    {
                                        cell = row.GetCell(j);
                                        if (cell == null)
                                        {
                                          dataRow = "";
                                        }
                                        else
                                        {
                                          //CellType(Unknown = -1,Numeric = 0,String = 1,Formula = 2,Blank = 3,Boolean = 4,Error = 5,)
                                          switch (cell.CellType)
                                          {
                                                case CellType.Blank:
                                                    dataRow = "";
                                                    break;
                                                case CellType.Numeric:
                                                    short format = cell.CellStyle.DataFormat;
                                                    //对时间格式(2015.12.5、2015/12/5、2015-12-5等)的处理
                                                    if (format == 14 || format == 31 || format == 57 || format == 58)
                                                      dataRow = cell.DateCellValue;
                                                    else
                                                      dataRow = cell.NumericCellValue;
                                                    break;
                                                case CellType.String:
                                                    dataRow = cell.StringCellValue;
                                                    break;
                                          }
                                        }
                                    }
                                    dataTable.Rows.Add(dataRow);
                              }
                            }
                        }
                  }
                }
                return dataTable;
            }
            catch (Exception ex)
            {
                if (fs != null)
                {
                  fs.Close();
                }
                throw ex;
            }
```

xiaovssha 发表于 2021-4-24 21:45

回顾下也不错

明月相照 发表于 2021-4-30 12:12

学习 学习复习一下。
页: [1]
查看完整版本: C#学习笔记4月第四周