小编Dav*_*vid的帖子

无法从汇编中嵌入互操作类型

我知道之前已经在这里问了类似的问题,但我不确定它们是否真正解决了我的问题,除非我误解了它们.

我今天早上一直在处理一个应用程序而且没有任何问题构建或重建解决方案,但是在吃完午餐然后回来之后(我打开程序),我突然无法构建它,因为它是返回3个错误,我之前没遇到过的错误.

错误1:

无法嵌入程序集'office'中的互操作类型,因为它缺少'ImportedFromTypeLib'属性或'PrimaryInteropAssembly'属性.

错误2:

无法在程序集'office'中嵌入互操作类型,因为它缺少'Guid'属性

错误3:

无法加载引用的库'C:\ WINDOWS\assembly\GAC_MSIL\Office\15.0.0.0__71e9bce111e9429c\Office.dll':系统找不到指定的文件.C:\ WINDOWS \装配\ GAC_MSIL \办公室\ 15.0.0.0__71e9bce111e9429c\Office.dll

是什么导致这些错误突然出现?

签入项目属性>参考>添加> COM后,我可以看到引用了Office 15.0对象库.那我该怎么办?应用程序打开时,它们似乎很奇怪吗?

.net vb.net interop reference-library

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

Xamarin条目控件TextChanged事件循环回合

在我的表格上,我有3个entry控件。我正在尝试使用以下验证规则来验证“年龄”控件:

  • 输入的数字不能超过3位

  • 无法输入小数点(。)

  • 无法输入连字符(-)

为此,我将控件的'TextChanged'属性设置为

TextChanged="OnAgeTextChanged"
Run Code Online (Sandbox Code Playgroud)

我的OnAgeTextChanged方法是:

 private void OnAgeTextChanged(object sender, TextChangedEventArgs e)
    {
       var entry = (Entry)sender;

        try
        {

           if (entry.Text.Length > 3)
            {
               string entryText = entry.Text;

               entry.TextChanged -= OnAgeTextChanged;

                entry.Text = e.OldTextValue;
                entry.TextChanged += OnAgeTextChanged;
            }

            string strName = entry.Text;

            if (strName.Contains(".") || strName.Contains("-"))
            {
                strName = strName.Replace(".", "").Replace("-", "");
                entry.Text = strName;
            }
        }

        catch(Exception ex)
        {
            Console.WriteLine("Exception caught: {0}", ex);
        }

    }
Run Code Online (Sandbox Code Playgroud)

但是,如果满足if条件,则该事件将被循环多次,从而导致应用程序运行缓慢。

例如,如果我输入我的年龄为1234,它将多次遍历代码,因此会有延迟,每次更改文本时延迟都会增加。

在没有多次调用事件的情况下,我还能通过什么其他方式来实现此验证?

编辑

更新代码以删除TextChanged控件上的触发器,然后在方法末尾重新分配该触发器之后,它仍会循环多次,并且每次按下键时循环次数都会增加。

进入控制 xaml …

c# logic android xamarin xamarin.forms

6
推荐指数
2
解决办法
3609
查看次数

FTPClient.retrieveFile返回false,但仍下载文件

我正在尝试使用此代码从FTP服务器检索文件。

private class FtpTask extends AsyncTask<Void, Void, Long> {
    protected Long doInBackground(Void... args) {

        FTPClient FtpClient = new FTPClient();
        int reply;

        try {
            FtpClient.connect(ftpServer);
            FtpClient.login(ftpUser, ftpPass);

            reply = FtpClient.getReplyCode();

            if (FTPReply.isPositiveCompletion(reply)) {
                String remoteFileName = "ACPlus.ZIP";
                String localFile = context.getFilesDir() + "/ACPLUS.ZIP";

                // Delete local file first
                File file = new File(localFile);
                if(file.exists()) {
                    file.delete();
                }

                FtpClient.changeWorkingDirectory("/" + ftpFolder);
                FtpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
                FtpClient.enterLocalPassiveMode();

                OutputStream outputStream = null;

                boolean success = false;
                try {
                    outputStream = new BufferedOutputStream(new FileOutputStream(localFile));
                    success = FtpClient.retrieveFile(remoteFileName, outputStream); …
Run Code Online (Sandbox Code Playgroud)

java android ftp-client

6
推荐指数
0
解决办法
121
查看次数

Visual Studio 2015-第一个事件处理程序停止事件?

我正在研究一个当前已迁移到Visual Studio 2015的项目。我刚刚遇到了一个问题,到目前为止我不知道该如何处理。在一系列继承的类中,如下所示:

Public Class ControlA
    Public Event CustomEvent(sender As Object, e As CustomEventArgs)
End Class

Public Class BaseForm
    Public WithEvents C As ControlA
End Class

Public Class MiddleForm
    Inherits BaseForm

    Private Sub C_CustomEvent(sender As Object, e As CustomEventArgs) Handles C.CustomEvent
        'do something
    End Sub
End Class

Public Class FinalForm
    Inherits MiddleForm

    Private Sub C_CustomEvent(sender As Object, e As CustomEventArgs) Handles C.CustomEvent
        'do something elese
    End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

最“外部”类中的事件处理程序(在本例中为显示给用户的表单)将执行应做的操作并停止事件。基类中的处理程序没有被调用。

在VS2010中一切正常。

任何人都有类似的问题,可以给个提示吗?

编辑

稍作更新:当我AddHandler在两个类中都使用时,一切正常。如果使用Handles- 定义了子项,则如上所述将其中断。

vb.net .net-4.0 visual-studio-2015

5
推荐指数
0
解决办法
189
查看次数

零或一到零或一的关系

有没有办法在数据库中创建0 or 1to0 or 1关系?

例如,假设我有一张经理表和一张艺术家表。一个经理只能管理一个艺人,一个艺人只能有一个经理。但是,经理可以没有艺人(即寻找艺人来管理),艺人可能没有经纪人。

有没有办法做到这一点?在任一表中创建外键只会创建1 to many关系。

sql sql-server

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

更改DateTime值的格式

每个人似乎都讨厌DateTime价值观.

在我的项目中,我有一个SQL SELECT查询来查找匹配参数值的数据库中的结果.

我的代码是:

Dim where As String = "WHERE [Supp_Code] = @scode " & _
    "AND [DateFrom] = @datfrom " & _
    "AND [DateTo] = @datto " & _
    "AND [Comm_Code] = @ccode " & _
    "AND [Customer_Code] = @custcode "

Dim sql As String = "SELECT [Comm_Code], [AqYear] FROM [Acquisition Commission] "

sql &= where & " ORDER BY [AqYear] ASC"

Dim cmd As New OleDb.OleDbCommand(sql, con)
cmd.Parameters.AddWithValue("@scode", cmbSupp.Text.Trim)
cmd.Parameters.AddWithValue("@datfrom", datFrom.Value)
cmd.Parameters.AddWithValue("@datto", datTo.Value)
cmd.Parameters.AddWithValue("@ccode", …
Run Code Online (Sandbox Code Playgroud)

sql vb.net ms-access datetime

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

导出到 Excel 时更改日期格式

我在程序中编写了导出到 Excel 的函数,这也与导入程序一致。

导入程序正在运行一些验证检查,但其中一些检查失败,因为 Excel 工作表将它们格式化为 MM/dd/yyyy,但大多数检查都存储为 dd/MM/yyyy。

查看我的导出程序后,我可以看到在导出之前,网格中的日期格式均正确为 dd/MM/yyyy,因此问题不在这里。

然而,当打开导出的 Excel 文件时,我可以看到某些日期存储为 MM/dd/yyyy。

我的电脑上的区域设置是正确的,设置为英国,甚至在检查列上的 Excel 格式后,我可以看到它设置为 dd/MM/yyyy。

那么,可能会出现什么问题呢?为什么有些出口不同?

网格中显示的值(正确格式 - 请参阅顶部 2 行“评价一次开始”,2016 年 1 月 6 日)

在此输入图像描述

导出例程中的代码

Dim formatRange As Excel.Range
formatRange = xlWorksheet.Range("F2", "F99000")
formatRange.NumberFormat = "dd/MM/yyyy"

formatRange = xlWorksheet.Range("I1", "I99000")
formatRange.NumberFormat = "dd/MM/yyyy"

formatRange = xlWorksheet.Range("J1", "J99000")
formatRange.NumberFormat = "dd/MM/yyyy"

formatRange = xlWorksheet.Range("M1", "M99000")
formatRange.NumberFormat = "dd/MM/yyyy"

formatRange = xlWorksheet.Range("N1", "N99000")
formatRange.NumberFormat = "dd/MM/yyyy"

formatRange = xlWorksheet.Range("Q1", "Q99000")
formatRange.NumberFormat = "dd/MM/yyyy"

For k As Integer …
Run Code Online (Sandbox Code Playgroud)

vb.net excel date

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

为什么这个INSERT查询会插入时间值而不是日期?

我在MS-Access数据库中有一个字段,如下所示.

在此输入图像描述

当我在数据库上运行此查询时(从VB6应用程序或直接作为查询)

INSERT INTO [stockQuantities] ([stockCode], [description], [productGroup], [qtyFrom], " & _
"[price], [dateQuoted]) VALUES (" SOS ", "SOS SAND FOR COSTING ONLY", "COS", 10, " & _
"6.34, 01/12/2018);
Run Code Online (Sandbox Code Playgroud)

最终值,dateQuoted而是插入为00:00:04.当我将格式更改Short Date为时,它将插入为30/12/1899.

为什么我的日期没有以正确的格式插入?问题是查询还是字段?

vb6 ms-access date insert

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

返回值被分配但始终返回为 0

我正在尝试使用下面的代码计算客户的订单总数和价值。

    Dim iOrderCount As Integer
    Dim iLineCount As Integer
    Dim cTotalGoods As Decimal
    Dim cTotalVat As Decimal
    Dim cTotalDelivery As Decimal

    Using manOrders As New CManOrders(m_dbSql)
manOrders.GetOrdersInProgress(sAccountCode, iOrderCount, iLineCount, cTotalGoods, cTotalVat, cTotalDelivery)
Run Code Online (Sandbox Code Playgroud)

当我在子例程中为这些变量赋值时GetOrdersInProgress,这些值被正确赋值,当我单步执行代码时我可以看到这一点。

Public Sub GetOrdersInProgress(sAccountCode As String, ByRef RET_orderCount As Integer, ByRef RET_lineCount As Integer,
                               ByRef RET_totalGoods As Decimal, ByRef RET_totalVat As Decimal, RET_totalDelivery As Decimal)

    ...

    For Each dr As DataRow In m_dbSql.getDataTable(sql).Rows
        RET_orderCount = dbToInt(dr(ORDER_COUNT))
        RET_lineCount = dbToInt(dr(LINE_COUNT))
        RET_totalGoods = dbToDecimal(dr(TOTAL_GOODS))
        RET_totalVat = dbToDecimal(dr(TOTAL_VAT))
        RET_totalDelivery …
Run Code Online (Sandbox Code Playgroud)

vb.net

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

在按下Enter键时,需要VB.net 2005中的帮助来执行逻辑

我想在MessageBox任何时候Enter按下键显示.我在vb.net2013年做到了这一点,但是在vb.net2005年试图做同样的事情时,我没有成功.

下面,我将展示在Form_Load子例程中创建列的代码.然后,我给出了Qty_change子程序的代码.

然后,我有一个替代版本的Qty_change标题.对于两者QTY_CHANGE,我已经显示了我得到的错误.什么是正确的代码?

SUB LOAD

...ETC ETC...

quantityItem = New ScrollableListItem((My.Resources.Resource.StrQuantity & ":" & vbTab) + quantityText, Nothing, Nothing, "quantity")
quantityItem.EditControl = textBox
quantityItem.Validator = quantityValidator
AddHandler quantityItem.ItemChanged, AddressOf QTY_Change
END SUB

Sub QTY_Change(ByVal sender As System.Object, ByVal e As System.EventArgs)
If e.KeyValue = 13 Then
  MessageBox.Show("Response")
End If
End Sub
Run Code Online (Sandbox Code Playgroud)

错误:'KeyValue'不是'System.EventArgs'的成员

Sub QTY_Change(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs)   
Run Code Online (Sandbox Code Playgroud)

错误:方法'Public sub QTY_CHange'与委托'Delegate …

vb.net

-8
推荐指数
1
解决办法
51
查看次数