Tag: C#的

例外:已经有一个打开的DataReader与这个Connection关联,必须先closures它

我有下面的代码,我得到exception: 已经有一个打开的DataReader与这个Connection关联,必须先closures它。 我为这个项目使用Visual Studio 2010 / .Net 4.0和MySQL。 基本上我试图运行另一个SQL语句,而使用数据读取器来做我的其他任务。 我在行cmdInserttblProductFrance.ExecuteNonQuery(); SQL = "Select * from tblProduct"; //Create Connection/Command/MySQLDataReader MySqlConnection myConnection = new MySqlConnection(cf.GetConnectionString()); myConnection.Open(); MySqlCommand myCommand = new MySqlCommand(SQL, myConnection); MySqlDataReader myReader = myCommand.ExecuteReader(); myCommand.Dispose(); if (myReader.HasRows) { int i = 0; // Always call Read before accessing data. while (myReader.Read()) { if (myReader["frProductid"].ToString() == […]

错误原因CS0161:不是所有的代码path都返回一个值

我做了一个基本的扩展方法来添加重试function到我的HttpClient.PostAsync : public static async Task<HttpResponseMessage> PostWithRetryAsync(this HttpClient httpClient, Uri uri, HttpContent content, int maxAttempts, Action<int> logRetry) { if (maxAttempts < 1) throw new ArgumentOutOfRangeException(nameof(maxAttempts), "Max number of attempts cannot be less than 1."); var attempt = 1; while (attempt <= maxAttempts) { if (attempt > 1) logRetry(attempt); try { var response = await httpClient.PostAsync(uri, […]

注册一个dll到GAC中,但是不会显示在程序集窗口中

我有这个代码注册DLL到我的gac Assembly asm = Assembly.LoadFrom(argument); RegistrationServices regAsm = new RegistrationServices(); bool bResult = regAsm.RegisterAssembly(asm, AssemblyRegistrationFlags.SetCodeBase); 这工作正常,我越来越真正的bResult,但是当我打开GAC窗口,我期望看到那里的DLL,但事实并非如此。 谁能解释我为什么? 当我把dll放入GAC窗口时,我在那里看到它。

在一个函数中操作multidimensional array

我在这里读了很多东西,并尝试了很多,但我找不到一个方法来传递一个multidimensional array到一个函数在C中,改变一些值,并以某种方式返回新的数组。 find一种方法将数组传递给另一个函数并执行相同的操作是非常重要的。 我想find一种方法将数组传递给一个函数。然后将它从第一个函数传递到第二个函数,在那里做一些事情(也许是打印,也许更改值),然后再次使用它到第一个函数,最后使用在主数组中。 我最后的尝试是: void func(int multarray[][columns]){ multarray[0][0]=9; } int main(){ int rows; int columns; int multarray[rows][columns]; func(multarray); return 0; } 我也试过这个: void func(int multarray[rows][columns]){ multarray[0][0]=9; } int main(){ int rows; int columns; int multarray[rows][columns]; func(multarray); return 0; } 我也试过这个: int getid(int row, int x, int y) { return (row*x+y); } void printMatrix(int*arr, int […]

在Unity中保存/加载数据

我一直在保存和加载在Unity中保存一个序列化的类到一个文件。 我有一个Serializable类: [Serializable] class Save { public List<int> ID = new List<int>(); public List<int> Amounts = new List<int>(); } 并将其保存到文件A – 确定。 我可以加载它没有错误,但如果我想以后添加: [Serializable] class Save { public List<int> ID = new List<int>(); public List<int> Amounts = new List<int>(); public int extra = 0; } 我运行我的脚本它给了我一个反序列化错误,我完全理解,因为当我把反序列化的文件到我的新类“保存”我添加的新variables不存在,它给了我错误。 我在修复商店中的资产时发现了这个错误,我知道一个修正可能只是更改文件名,以便创build一个新文件,但是我不只是想擦掉以前保存的内容。 所以我的问题是,如果我想添加更多的variables到我的序列化的类,如果人们更新资产,我会如何捕获和调整旧版本的? 谢谢!

该程序不会在scanf(“%c”,&ch)行停止,为什么?

该程序不会停止在scanf(“%c”,&ch)行上。 为什么会发生sombody可以请解释给我 #include<stdlib.h> #include<stdio.h> struct list { char val; struct list * next; }; typedef struct list item; void main() { char ch; int num; printf("Enter [1] if you want to use linked list or [2] for realloc\n"); scanf("%d", &num); if(num == 2) { scanf("%c", &ch); printf("%c", ch); } }

系统(“cd <path>”)在C程序中

我试图在C程序中使用system()函数。 例如,我尝试使用system()函数在桌面上创build一个目录。 我的代码: #include <stdio.h> #include <stdlib.h> int main(void) { system("cd c:\\Users\\USER\\Desktop"); system("mkdir test"); return 0; } 当我运行这个代码时,会创build一个目录,但不在我的桌面上。 它是在我的项目目录中创build的。 为什么发生这种情况? 我可以在system()函数中使用cd命令吗? 如果没有,是否有一个替代cd命令,将与system()? 我正在使用Windows操作系统。 我试图从C程序中使用system(),因为我使用cmd程序。 我知道我可以使用WinAPI创build目录,没有任何问题。 我不想使用WinAPI,我的问题是如何使它使用system()。

“牛顿软件”找不到

我把代码从http://www.codeproject.com/Tips/789481/Bridging-the-Gap-between-Linqpad-and-Visual-Studio粘贴到Visual Studio 15.它告诉我,'Newtonsoft'找不到。 我打开文件夹“\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ PrivateAssemblies”,发现文件Newtonsolft.Json.dll已经存在。 谁能告诉我如何解决问题?

C ++标准库和Boehm垃圾收集器

我想在Linux / AMD64 / Debian上用GCC 4.6开发一个multithreading的C ++应用程序(最终大部分的C ++代码将由应用程序本身生成,可以被视为一种高级的域特定语言)可能是最新的C ++ 11标准)。 我真的想用Boehm的保守的垃圾收集器来分配我所有的堆,因为我想用new(GC)分配,而且从不打扰delete 。 我假设Boehm的GC工作得很好。 使用C ++(而不是C)的主要动机是C ++标准库提供的所有algorithm和集合std::map … std::vector 。 Boehm的GC提供了一个gc_allocator<T>模板(在其文件gc / gc_allocator.h中)。 我应该重新定义operator ::new作为Boehm的吗? 或者我应该使用显式的分配器模板参数设置为一些gc_allocator所有集合模板? 我不明白第二个模板参数(分配器)对std :: vector的作用吗? 是用来分配vector内部数据还是分配每个单独的元素? 那么std::string -s呢? 如何使他们的数据GC分配? 我应该有我自己的string,使用basic_string模板与gc_allocator ? 有没有办法让GC_malloc_atomic而不是GC_malloc分配的char内部数组? 或者你build议不要使用Boehm GC与g ++编译的应用程序? 问候。

无法访问非静态字段

我无法弄清楚为什么它正在寻找静态的东西: public class DatabaseBase { private readonly string connectionString; public DatabaseBase(string connectionString) { this.connectionString = connectionString; } } public class MyDB : DatabaseBase { readonly string connectionString = ConfigurationManager.AppSettings["MyConnectionString"]; public MyDB() : base(connectionString) { } } 我得到无法在静态上下文中访问非静态字段'connectionString'。 我没有看到任何静态的基础数据库类,所以为什么? 这是我们做了同样的事情的另一个例子: partial class Database : DatabaseBase { static string DbConnectionString { get { if (dbConnectionString == null) […]