小编Ben*_*Ben的帖子

在postgreSQL中向左边填充零

我对PostgreSQL比较新,我知道如何在SQL Server中用左边的零填充数字,但我很难在PostgreSQL中弄清楚这一点.

我有一个数字列,其中最大位数为3,最小值为1:如果是一位数,则左侧有两个零,如果是2位,则为1,例如001,058,123.

在SQL Server中,我可以使用以下内容:

RIGHT('000' + cast([Column1] as varchar(3)), 3) as [Column2]
Run Code Online (Sandbox Code Playgroud)

这在PostgreSQL中不存在.任何帮助,将不胜感激.

sql postgresql zero-padding

76
推荐指数
4
解决办法
8万
查看次数

将图像作为二维数组导入python

我只是想知道有没有办法使用 numpy 和 PIL 在 python 中导入图像以使其成为二维数组?此外,如果我有黑白图像,是否可以将黑色设置为 1,将白色设置为零?

目前我正在使用:

temp=np.asarray(Image.open("test.jpg"))
frames[i] = temp #frames is a 3D array
Run Code Online (Sandbox Code Playgroud)

有了这个,我得到一个错误:

ValueError:操作数无法与形状一起广播 (700,600) (600,700,3)

我是 python 的新手,但据我所知,这意味着基本上 temp 是一个 3D 数组,我将它分配给一个 2D 数组?

python arrays numpy python-imaging-library

5
推荐指数
1
解决办法
2万
查看次数

发布使用EPPlus写入电子表格的问题

我只是想编辑一个已写入文本的电子表格,将文本更改为空白.

然而,它不起作用.该方法似乎什么都不做.

我的代码是:

public static void ClearCells(string SpreadsheetFilePath)
{
    var SpreadsheetPath = new FileInfo(SpreadsheetFilePath);
    var package = new ExcelPackage(SpreadsheetPath);
    ExcelWorkbook workBook = package.Workbook;
    if (workBook != null)
    {
        if (workBook.Worksheets.Count > 0)
        {
            ExcelWorksheet currentWorksheet = workBook.Worksheets.First();
            currentWorksheet.SetValue(1, 1, "hello123");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

没有运行时错误.它运行,完成,电子表格不变.我不知道为什么.

c# epplus

4
推荐指数
1
解决办法
1304
查看次数

在javascript问题中应用复合css规则

这可能只是一个简单的问题,但我如何将css规则应用于复合节而不仅仅是特定的id,例如我目前拥有的:

var pillpic = document.getElementById('pill');
pillpic.style.left="300px";
pillpic.style.top="160px";
Run Code Online (Sandbox Code Playgroud)

如何将其更改为应用于复合规则的样式?比如这样:

#wrapper #photoslider #appframe #clock img {}
Run Code Online (Sandbox Code Playgroud)

如果我在我可以使用的样式表中这样做

html javascript css

3
推荐指数
1
解决办法
87
查看次数

使用 C# 更改 Access 2007 中链接表的源表

我首先会问我在下图中的想法是否正确: 在此输入图像描述

'TABLE=CLOASEUCDBA.T_BASIC_POLICY' 不是连接字符串的一部分?实际上它是源表名称?

我希望将其更改为同一数据库上的另一个链接表。连接字符串应该相同,并且 ACCESS 中出现的名称应该相同。唯一的区别应该是在幕后,它实际上引用了另一个表,当然,如果您打开该表,它将包含不同的字段和数据。

我到目前为止执行此操作的代码是:

    var dbe = new DBEngine();
    Database db = dbe.OpenDatabase(@"C:\Users\xxxx\Documents\Test.accdb");
    foreach (TableDef tbd in db.TableDefs)
    {

        if (tbd.Name.Contains("CLOASEUCDBA_T_BASIC_POLICY"))
        {
            tbd.SourceTableName = "CLOASEUCDBA_T_BILLING_INFORMATION"; 
        }
    }
    db.Close();
Run Code Online (Sandbox Code Playgroud)

然而,我收到了一个巨大的 COMException“一旦对象是集合的一部分,就无法设置此属性。”。我不确定到底为什么,我在网上找到的所有示例都是用 VB/VBA 编写的,我对此的了解非常有限。任何帮助表示赞赏。

编辑:我尝试使用代码走不同的路线,但没有取得进一步的成功:

        if (tbd.Name.Contains("CLOASEUCDBA_T_BASIC_POLICY"))
        {
            var newtable = db.CreateTableDef("this is a new table");
            newtable.Name = "new table";
            newtable.Connect = tbd.Connect;
            newtable.SourceTableName = "CLOASEUCDBA_T_BILLING_INFORMATION";
            db.TableDefs.Append(newtable);
            //tbd.SourceTableName = "CLOASEUCDBA_T_BILLING_INFORMATION"; 
        }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我收到错误“ODBC——调用失败”。

c# sql oledb ms-access ms-access-2007

3
推荐指数
1
解决办法
1598
查看次数

检查 ODBC DSN 是否存在?

我一直在使用注册表来检查给定的 DSN 是否存在,使用以下代码:

private const string ODBC_INI_REG_PATH = "SOFTWARE\\ODBC\\ODBC.INI\\";
public static bool DSNExists(string dsnName)
{
    var sourcesKey = Registry
        .LocalMachine.CreateSubKey(ODBC_INI_REG_PATH + "ODBC Data Sources");
    if (sourcesKey == null) 
        throw new Exception("ODBC Registry key for sources does not exist");
    string[] blah = sourcesKey.GetValueNames();
    Console.WriteLine("length: " + blah.Length); //prints: 0
    return sourcesKey.GetValue(dsnName) != null;
}
Run Code Online (Sandbox Code Playgroud)

绝对不存在 0 个 DSN,并且我作为参数传入的 DSN 确实存在,但它返回 false。我不明白为什么?

c# odbc dsn

3
推荐指数
1
解决办法
4962
查看次数

将字符串转换为小数,始终保留 2 位小数

我正在尝试将字符串转换为小数,以始终保留 2 位小数。例如:

  • 25.88 -> 25.88
  • 25.50 -> 25.50
  • 25.00 -> 25.00

但通过下面的代码,我看到以下内容:

  • 25.88 -> 25.88
  • 25.50 -> 25.5
  • 25.00 -> 25

我的代码:

Decimal.Parse("25.50", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

或者

Decimal.Parse("25.00");
Run Code Online (Sandbox Code Playgroud)

或者

Convert.ToDecimal("25.50");
Run Code Online (Sandbox Code Playgroud)

对于我所得到的一切25.5。多余的可以不去掉吗?

c# decimal

3
推荐指数
1
解决办法
1万
查看次数

搜索可枚举的最有效方法

我正在编写一个小程序,它接收一个.csv文件作为输入,大约有45k行.我试图将此文件的内容与数据库中的表的内容进行比较(SQL Server通过动态CRM使用Xrm.Sdk,如果它有所不同).

在我当前的程序中(大约需要25分钟进行比较 - 文件和数据库在这里完全相同,只有45k行没有差异),我拥有数据库中的所有现有记录,DataCollection<Entity>其继承Collection<T>IEnumerable<T>

在我的下面的代码中,我使用该Where方法进行过滤,然后根据匹配计数进行逻辑.这Where似乎是瓶颈.有没有比这更有效的方法?我绝不是LINQ专家.

foreach (var record in inputDataLines)
{
    var fields = record.Split(',');

    var fund = fields[0];
    var bps = Convert.ToDecimal(fields[1]);
    var withdrawalPct = Convert.ToDecimal(fields[2]);
    var percentile = Convert.ToInt32(fields[3]);
    var age = Convert.ToInt32(fields[4]);
    var bombOutTerm = Convert.ToDecimal(fields[5]);

    var matchingRows = existingRecords.Entities.Where(r => r["field_1"].ToString() == fund
                                      && Convert.ToDecimal(r["field_2"]) == bps
                                      && Convert.ToDecimal(r["field_3"]) == withdrawalPct
                                      && Convert.ToDecimal(r["field_4"]) == percentile
                                      && Convert.ToDecimal(r["field_5"]) == age);

    entitiesFound.AddRange(matchingRows);

    if (matchingRows.Count() == 0)
    {
        rowsToAdd.Add(record); …
Run Code Online (Sandbox Code Playgroud)

c# linq performance dynamics-crm processing-efficiency

3
推荐指数
1
解决办法
114
查看次数

设置 ValidateAntiForgeryToken 属性以在条件下工作

我有一个带有 POST 操作的通用 MVC 控制器。该控制器用于多个应用程序使用的公共项目。我们正在尝试在交错发布过程中添加 CSRF 保护,其中我们通过防伪造令牌一次为每个应用程序添加 CSRF 保护。

如果我向该控制器添加验证属性,[ValidateAntiForgeryToken]但仅在其中一个应用程序的视图中包含防伪造令牌隐藏表单元素,这将对其他应用程序造成严重破坏。如何根据条件应用此属性。这可能吗?是否需要像下面的代码一样手动完成?有没有更好的办法?

    [HttpPost]
    public ActionResult GenericSection(string nextController, string nextAction, FormCollection form)
    {
        // Validate anti-forgery token if applicable
        if (SessionHandler.CurrentSection.IncludeAntiForgeryToken)
        {
            try
            {
                AntiForgery.Validate();
            }
            catch (Exception ex)
            {
                // Log error and throw exception
            }
        }

        // If successful continue on and do logic
    }
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc csrf antiforgerytoken

3
推荐指数
1
解决办法
2922
查看次数

对 Access 中的(隐藏)系统表运行 C# 查询?

我正在尝试对 C# 中的 Access 2007 数据库运行以下查询:

OleDbCommand command = new OleDbCommand();
command.Connection = connect;
command.CommandText = "SELECT * FROM MSysQueries";
OleDbDataReader reader = command.ExecuteReader();
Run Code Online (Sandbox Code Playgroud)

我得到错误:

无法读取记录;对“MSysQueries”没有读取权限。

是否有可能做到这一点?如果是这样怎么办?我的印象是可以做到这一点,但我不完全确定。

c# sql ms-access ms-access-2007

1
推荐指数
1
解决办法
859
查看次数

C#写入文本文件问题

我有一个足够简单的类,用于将文本记录到.txt文件中我遇到的问题是,如果文本文件不存在,我将在代码中显示的点处获得异常.程序崩溃后,文本文件出现在文件夹中.如果我在log.txt文件存在的情况下运行该程序,它可以完美地运行.

代码:

class logger
{
        public string source;
        //public logger()
        //{

        //}
        public logger(string source)
        {
            CheckExists(source);
            this.source = source + "log.txt";
        }
        private void CheckExists(string source)
        {
            if (!File.Exists(source + "log.txt"))
            {
                File.Create(source + "log.txt");
            }
        }
        public void WriteToLog(string output)
        {
            try
            {
                using (StreamWriter sw = File.AppendText(this.source))
                {
                    sw.WriteLine(output);
                    sw.Close();
                }
            }
            catch (Exception e)
            {

                //point at which the code breaks;
            }

        }
}
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
106
查看次数

SQL Server语法问题

我在这里有一些非常基本的SQL:

SELECT TOP 1 *
  FROM  (SELECT TOP 8 *
        FROM [BP_BasicPolicy ] 
        )
Run Code Online (Sandbox Code Playgroud)

由于某种原因它不编译,我得到错误:

消息102,级别15,状态1,行4
'''附近的语法不正确.

什么是正确的语法?我不明白为什么我收到此错误,因为我认为它是完全合法的SQL Server语法

sql sql-server

0
推荐指数
1
解决办法
79
查看次数