我通过 Azure 中的 .NET 应用程序随机收到此错误消息。
关于该错误的可用信息似乎非常有限,我想知道是否有人知道可能是什么原因造成的?
它似乎是在调用某个存储过程时发生的,但它真的很难重新创建并且随机发生。
System.BadImageFormatException: Bad IL format.
at System.Data.SqlClient.SqlConnection.ValidateAndReconnect(Action beforeDisconnect, Int32 timeout)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite, String method)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite, String methodName)
at System.Data.SqlClient.SqlCommand.BeginExecuteNonQuery(AsyncCallback callback, Object stateObject)
at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions)
at System.Data.SqlClient.SqlCommand.ExecuteNonQueryAsync(CancellationToken cancellationToken)
Run Code Online (Sandbox Code Playgroud) 我创建了一个带有 DataGridView 的 Windows 窗体,并添加了一列,其中每行包含一个复选框。将 DataTable 绑定到 DataGridView,然后添加 DataGridViewCheckBoxColumn。
当我的表单关闭时,我尝试获取每行中复选框的值,但如果用户在任何时候都没有选中一行中的复选框,那么当我认为应该返回 false 时,程序只会将其值返回为 null (未检查)。这是为什么?我可以做什么来解决它?
//add checkbox column
DataGridViewCheckBoxColumn mCheckboxColumn = new DataGridViewCheckBoxColumn();
mCheckboxColumn.Name = "chk";
mCheckboxColumn.HeaderText = "checkbox";
dgv.Columns.Add(mCheckboxColumn);
//looping through each row
foreach (DataGridViewRow row in dgv.Rows)
{
if ((bool)row.Cells["chk"].Value == true)
{
MessageBox.Show("checked!");
}
}
Run Code Online (Sandbox Code Playgroud) c# datagridview datagridviewcheckboxcell datagridviewcolumn winforms
我有一个只能在运行时检索对象类型的方法。我尝试将其转换为已知对象列表,但失败了。
private string outputParamForListOrDict(IMethodReturn returnValue)
{
StringBuilder sb = new StringBuilder();
String outputString = string.Empty;
switch (returnValue.ReturnValue.GetType().GetGenericArguments()[0].Name)
{
case nameof(ViewDocumentReport):
List<ViewDocumentReport> _viewDocumentParam = (List<ViewDocumentReport>)returnValue.ReturnValue;
//process the data here........
return sb.ToString();
//Other object cases
}
}
Run Code Online (Sandbox Code Playgroud)
我在下面遇到了一个例外:
"Unable to cast object of type >'<TakeIterator>d__25`1[ezAcquire.RMS.Model.ViewModels.ViewDocumentReport]' to type 'System.Collections.Generic.List`1[ezAcquire.RMS.Model.ViewModels.ViewDocumentReport]'."}
Run Code Online (Sandbox Code Playgroud)
我在调试模式下设置了断点。我的 returnValue.ReturnValue 是
如果我展开,我可以看到一个列表列表。
有人可以向我解释 d_25 是什么意思,并建议我如何在运行时正确地转换它?
谢谢
我有一个从网络获取一些数据的自定义类。
当我获得这些数据时,我想将它设置为一个属性的值,但是当我这样做时,统一崩溃了。注释行会在没有此行的情况下生成崩溃,一切正常。请参阅下面的代码:
using System;
using System.Collections;
using UnityEngine;
using UnityEngine.Networking;
public class GetDB
{
private readonly Main m;
private readonly string Url;
public string DBData {
get
{
if(DBData == null)
return null;
else
return DBData;
}
private set
{
DBData = value;
}
}
public GetDB(Main m, string url)
{
this.m = m;
this.Url = url;
}
public void GetServerData(){
m.StartCoroutine(GetText(Url, (result) =>{
this.DBData = result; //THIS LINE CRASHES UNITY
Debug.Log(result);
}));
}
IEnumerator GetText(string url, Action<string> result) { …Run Code Online (Sandbox Code Playgroud) 我在共享库中保存了一些 .json 文件。
我已经成功地通过代码在 iOS 中很好地阅读了
string fileName = $"Files/file_name.json";
var path = Path.Combine(NSBundle.MainBundle.BundlePath, fileName);
using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read))
using (var streaReader = new StreamReader(stream))
{
return streaReader.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)
然而,我一直在努力为 Android 做同样的事情。我无法读取资产,因为它位于共享库中。
using (var stream = Application.Context.Assets.Open("Files/file_name.json))
Run Code Online (Sandbox Code Playgroud)
如果我在 Android 项目的 asset 文件夹下有该文件,那么使用上面的 live 确实可以工作。
我想保留一份用于两个平台的文件副本。
public string GetUpgradesPurchasedVal()
{
string upgradesPurchasedVals = "";
for (int i = 0; i < upgradesPurchased.Count; i++) {
if (i == upgradesPurchased.Count) {
upgradesPurchasedVals += upgradesPurchased [upgradeNames[i]].ToString () + "$";
} else {
upgradesPurchasedVals += upgradesPurchased [upgradeNames[i]].ToString () + "|";
}
}
return upgradesPurchasedVals;
}
Run Code Online (Sandbox Code Playgroud)
所以在这里我循环遍历Dictionary<string,bool> upgradesPurchased并且我试图确保for循环是否在行标记的最后一次迭代,if(i == upgradesPurchased.Count)在这种情况下我期望发生的是if i等于字典中的项目数然后字符串将收到"$"而不是"|" 但是看起来这条线完全被忽略了
简介:我需要测试for循环是否在最后一次迭代中,如果是,那么"$"应该添加到字符串中,如果不是"|" 应该添加到字符串中
假设我有一个字符串
string hex = "55 6E 6B 6E 6F 77 6E 20 53 70 61 63 65"
Run Code Online (Sandbox Code Playgroud)
我想将这些写入文件,但它们应该是字节本身.所以结果将是未知空间.
有没有办法直接这样做,而不是先将encoding它utf-8写入文件?我要问的原因是,如果我首先将字符串拆分为每个值的字符,有时候utf-8(例如0xE28780)中的特殊字符不会很好.
非常感谢!
c# ×7
asp.net ×1
azure ×1
casting ×1
coroutine ×1
datagridview ×1
enumerable ×1
filestream ×1
list ×1
properties ×1
sql-server ×1
utf-8 ×1
winforms ×1
xamarin ×1