小编Ehs*_*jad的帖子

选择带字符串值返回

我有一个应用程序C#连接并在数据库中做一些事情,所以我需要在表中找到一个序列号并返回它,我这样做但我有一个问题:

public int Select_Begin(string serial)
{
   string query = "SELECT serial FROM `compteur_mono` WHERE   serial = " + serial + ";";
   //Open connection
   MySqlCommand cmd = new MySqlCommand(query, connection);
   if (this.OpenConnection() == true)
   {
      int numero = cmd.ExecuteNonQuery();
      return numero;
   }
   else
   {
      return 0;
   }
}
Run Code Online (Sandbox Code Playgroud)

当我执行时,结果总是-1但是当我这样做时:

public string Select_Begin(string serial)
{
   string query = "SELECT serial FROM `compteur_mono` WHERE   serial = " + serial + ";";
   //Open connection
   MySqlCommand cmd = new MySqlCommand(query, connection);
   if (this.OpenConnection() == true) …
Run Code Online (Sandbox Code Playgroud)

c# string select return

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

泛型仅支持引用转换而不支持装箱转换

虽然在第91页上简单地阅读关于装箱和拆箱的c#,但作者写道:

拳击转换对于提供统一类型系统至关重要.该系统并不完美,但我们将在泛型中看到,与数组和泛型的差异仅支持**引用转换**而不支持**装箱转换**

并引用示例代码:

object [] a1 = new string [3]; //legal
object [] a2 = new int [3]; // error
Run Code Online (Sandbox Code Playgroud)

有人可以解释作者试图提供的内容以及为什么第一行是合法的而第二行不是?

c# generics boxing unboxing variance

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

我什么时候应该使用C#Generic Func <T,Tresult>?

我一直在看C#的通用函数委托(Func)功能.

例:

// Instantiate delegate to reference UppercaseString method
Func<string, string> convertMethod = UppercaseString;
string name = "Dakota";

// Use delegate instance to call UppercaseString method
Console.WriteLine(convertMethod(name));
Run Code Online (Sandbox Code Playgroud)

我正在努力想到一个真实的生活场景,它们可能在我自己的应用程序中很有用.所以我想我会把问题提到那里.\

我非常感谢你的想法.

c# generics func

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

添加一个int变量时生成不同的IL

我在c#中有这个程序:

using System;

class Program
{
    public static void Main()
    {
    int i = 4;
    double d = 12.34;
    double PI = Math.PI;
    string name = "Ehsan";


    }
}
Run Code Online (Sandbox Code Playgroud)

当我编译它时,以下是编译器为Main生成的IL:

.method public hidebysig static void  Main() cil managed
{
  .entrypoint
  // Code size       30 (0x1e)
  .maxstack  1
  .locals init (int32 V_0,
           float64 V_1,
           float64 V_2,
           string V_3)
  IL_0000:  nop
  IL_0001:  ldc.i4.4
  IL_0002:  stloc.0
  IL_0003:  ldc.r8     12.34
  IL_000c:  stloc.1
  IL_000d:  ldc.r8     3.1415926535897931
  IL_0016:  stloc.2
  IL_0017:  ldstr      "Ehsan"
  IL_001c:  stloc.3
  IL_001d:  ret …
Run Code Online (Sandbox Code Playgroud)

c# il csc ildasm

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

调用Asyc Task <T>方法

我现在正在学习异步(UWP)方法,并且不能完全理解语法.所有示例都有很多事情,而不仅仅是Task异步调用,并没有真正显示它们是如何启动的.我不明白的主要问题是如何从非异步方法启动任务.每当我尝试调用任务时,它都希望我将该方法转换为异步方法.反过来又希望我将任何调用该方法的方法转为异步.那你怎么开始呢?

我正在尝试的当前用例是从UWP localstorage中检索一个充满用户名和ID的JSON文件,现在UWP中的这是一个异步调用.我很确定我的方法是正确的但是我在调​​用它时遇到了问题.目前我在它支持的页面后面的代码中调用方法,其中实际方法当前驻留在User Class中.

这是我的代码:

public async Task<List<User>> getUsers()
    {
        List<User> u = new List<User>();
        StorageFolder folder = ApplicationData.Current.LocalFolder;
        StorageFile file = await folder.GetFileAsync("LocalUsers.txt");
        string Json = await FileIO.ReadTextAsync(file);
        List<User> existingUsers = new List<User>();
        existingUsers = JsonConvert.DeserializeObject<List<User>>(Json);
        return existingUsers;
    }
Run Code Online (Sandbox Code Playgroud)

这就是我试图从后面的代码中调用方法的方法

    List<User> users = await User.getUsers();
Run Code Online (Sandbox Code Playgroud)

我已经尝试过像这样运行任务,但我不认为我的sytax是正确的

    Task t = new Task(User.getUsers());
Run Code Online (Sandbox Code Playgroud)

任何援助都会得到很大的帮助.谢谢.

c# task async-await win-universal-app windows-10-universal

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

向MVC中的视图添加特定的错误消息

是否可以向视图中的字段添加特定的错误消息?目前,我已经在模型上进行了验证,以检查字段是否为空(ValidationMessageFor <>),并且我正在使用验证摘要来查找特定的错误。我想知道的是,为摘要创建的特定错误消息是否可以代替ValidationMessageFor <>?

模型:

 [Required]
 public string SchoolCode { get; set; }
Run Code Online (Sandbox Code Playgroud)

视图:

@Html.ValidationSummary("", new { @class = "text-danger" })
@Html.EditorFor(m => m.SchoolCode, new { htmlAttributes = new { @class = "form-control", @placeholder = "School Code" } })

@Html.ValidationMessageFor(model => model.SchoolCode, "", new { @class = "text-danger" })
Run Code Online (Sandbox Code Playgroud)

控制器:

var schoolExists = RepositoryHelper.GetSchoolByCode(model.SchoolCode);
if (schoolExists == null)
{
    ModelState.AddModelError(string.Empty, @"No school exists with this code");
    return View(model);
}
if (ModelState.IsValid)
{
    //do other stuff
}
Run Code Online (Sandbox Code Playgroud)

因此,如果模型状态无效,则返回模型错误,但是如果输入了错误的代码,则会在验证摘要中添加“此代码不存在任何学校”。我可以用学校代码摘要错误替换学校代码模型错误吗?

validation asp.net-mvc razor

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

如何使用linq和lambdas从一个系列中获得前三名球员和他们的高分

我有以下收集的分数;

var scores = new[]
    {
      new { score = 10, player = "Dave" }, 
      new { score = 9, player = "Dave" }, 
      new { score = 8, player = "Steve" }, 
      new { score = 7, player = "Pete" }, 
      new { score = 8, player = "Paul" }, 
      new { score = 4, player = "Mike" }
    };
Run Code Online (Sandbox Code Playgroud)

我想要一个包含前三名球员及其高分的分数(按分数排序,最高分排名第一)即

{ score = 10, player = "Dave" }
{ score = 8, player = "Paul" }
{ score …
Run Code Online (Sandbox Code Playgroud)

c# linq lambda

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

Linq:方法无法翻译成商店表达式

我目前正在尝试限制哪些用户可以访问哪些组,并且正在使用linq执行此操作.当我将相关组添加到视图时,我的问题出现了.

我一直得到的错误是:

LINQ to Entities无法识别方法'System.String GetUserId(System.Security.Principal.IIdentity)'方法,并且此方法无法转换为存储表达式

这是我的代码:

  var groupUser = db.GroupUsers.Where(u => u.ApplicationUserId == User.Identity.GetUserId()).Select(gr => gr.GroupId);
  pv.GroupList = db.Groups.Where(g => groupUser.Contains(g.Id)).ToList();
  return View(pv);
Run Code Online (Sandbox Code Playgroud)

.net c# linq linq-to-entities visual-studio-2010

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

Razor 输入元素自定义属性

您好,我需要执行以下操作:

@Html.TextBoxFor(m => m.Login, 
                 new { 
                       @class = "form-control", 
                       @placeholder = "Username", 
                       required="true" data-required-message="Please insert your name" 
                     })
Run Code Online (Sandbox Code Playgroud)

但是我遇到错误data-required-message似乎我不能使用“-”。

有什么线索吗?

asp.net-mvc razor

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

Ajax BeginForm - 在不同的控制器上调用操作

我有以下场景:
- 区域 A -> PartialView A -> 它在控制器 A 上使用 Ajax.BeginForm 调用操作“保存”
- 区域 B -> 视图 B

我将“PartialView A”插入到“View B”中,但 Ajax.BeginForm 表单操作正在调用控制器 B 操作而不是控制器 A。

部分视图 A:

        @using (Ajax.BeginForm(null, null, new AjaxOptions<br>
        {
            Url = Url.Action("Save", "ControllerA", null, Request.Url.Scheme),
            HttpMethod = "Post",
        }
Run Code Online (Sandbox Code Playgroud)

控制器A动作:

    [HttpPost]
    public ActionResult Save(Model model)
    {
    }
Run Code Online (Sandbox Code Playgroud)

我的目标是将局部视图重用/插入到其他视图中,而不必向视图的控制器添加任何其他操作。如何解决这个场景?非常感谢您的帮助。

ajax asp.net-mvc asp.net-ajax

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