小编Gra*_*ICA的帖子

从sql ExecuteScalar()中检索值

我有以下内容:

String sql = "SELECT * FROM Temp WHERE Temp.collection  = '" + Program.collection + "'";
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
Program.defaultCollection = (String)cmd.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)

我想在执行语句后得到第二列.我知道它只返回一行有两列

我在网上看过,我必须阅读结果的每一行,还有其他方法吗?

c# sql database sql-server

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

将Single对象绑定到Datagridview

我有一个Customer有以下成员的班级.

class Customer
{
    public string ID { get; set; }
    public string Name { get; set; }
    public string Age { get; set; }
}

class Test
{
    private void load()
    {
        Customer objCust=new Customer();
        objCust.ID="1";
        objCust.Name="Hello";
        objCust.Age="23";
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想将这个实体绑定到我的DataGridView,但它没有向我显示任何行.

我使用以下代码将此Class对象绑定到DataGridView.

datagridview1.DataSource = objCust;
Run Code Online (Sandbox Code Playgroud)

c# visual-studio-2010 winforms

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

在WPF媒体元素中连续重播视频

我有一个媒体元素播放的视频文件.我需要继续玩,所以我试过:

me.play();
me.MediaEnded += new RoutedEventHandler(me_MediaEnded);
Run Code Online (Sandbox Code Playgroud)

使用此事件方法:

//loop to keep video playing continuously
void me_MediaEnded(object sender, EventArgs e)
{
    //play video again
    me.Play();
}
Run Code Online (Sandbox Code Playgroud)

但是,上面没有重播视频文件.为什么?我做错了什么?

c# wpf mediaelement event-handling replay

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

为什么在写入 StreamWriter 时会得到 System.Collections.Generic.Dictionary`2?

我有这个代码:

        Console.Title = "System Reader";
        Console.WriteLine("Enter the Domain-Address <or local>:");
        string domain = Console.ReadLine();
        Console.Clear();
        string date = DateTime.Now.ToString("yyyy-MM-dd");
        string time = DateTime.Now.ToString("HH-mm-ss");
        double count = 1;
        string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "user_" + domain + "_" + date + "_" + time + ".txt");
        string ComputerName = Environment.MachineName;
        Console.Clear();
        if (domain == "local")
        {
            ObjectQuery user = new ObjectQuery("SELECT * FROM Win32_UserAccount WHERE LocalAccount = True");
            ManagementObjectSearcher userSearcher = new ManagementObjectSearcher(user);
            TextWriter tw = new StreamWriter(path);
            tw.Write("Account Type" + "\t" …
Run Code Online (Sandbox Code Playgroud)

c# dictionary streamwriter textwriter

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

尝试创建程序以反转字符串时出错

我在互联网上阅读的所有内容都让我觉得这个程序应该运行但我一直都会收到错误.错误说明:

"无法将类型'system.collections.generic.IEnumerable'隐式转换为'string'.存在隐式转换".

我错过了什么吗?

class Program
{
    static void Main(string[] args)
    {
        string entry;

        Console.Write("Input String: ");
        entry = Console.ReadLine();

        entry = entry.Reverse();
        //Error occurs here ^             

        Console.Write(entry);

        Console.ReadKey(); 
    }
}
Run Code Online (Sandbox Code Playgroud)

c# string reverse

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

在Winform中打开Crystal报表

我创建了一个水晶报表,然后在创建它之后,创建了一个winform,在其中导入了水晶报表库(以代码显示),并使用报表查看器来查看该报表,但是我无法查看该报表,代码,我是Crytal Reports的新手,我做的代码是:

码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CrystalDecisions.CrystalReports.Engine;

namespace InventorySoftware
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            this.reportViewer1.RefreshReport();



        }

        private void button1_Click(object sender, EventArgs e)
        {
            //string ReportSources = "";
            ReportDocument cryRpt = new ReportDocument();
            cryRpt.Load("C:\\Users\\Ahsan\\Desktop\\PROJECT INVENTORY SOFTWARE\\InventorySoftware\\InventorySoftware\\CrystalReport1.rpt");
            reportViewer1.ReportSource = cryRpt;
            reportViewer1.Refresh();

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它给出了错误, reportViewer1.ReportSource = cryRpt; 错误是

Error   1   'Microsoft.Reporting.WinForms.ReportViewer' does …
Run Code Online (Sandbox Code Playgroud)

c# crystal-reports visual-studio-2008 winforms

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

使用foreach循环定义列表中包含各种字符串的单个messageBox可能吗?

我在var集中有各种字符串

var linhas = new[] { line8, line9, line10}
Run Code Online (Sandbox Code Playgroud)

我想在一个消息框中显示它们,但是!我不想展示那些空的,所以我使用以下内容

foreach (var l in linhas)
    if (l != null)
    {
        MessageBox.Show(l);
    }
Run Code Online (Sandbox Code Playgroud)

但正如预测的那样,它一次只能显示一条消息.有可能以某种方式从列表中删除空行,并在单个MessageBox中仅显示除null之外的那些行吗?

MessageBox.Show(linenotnull8 + "\n" + linenotnull10);
Run Code Online (Sandbox Code Playgroud)

c# foreach messagebox

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

单击标题时在DataGridView中获取“索引超出范围”异常

我正在使用DataGridView来显示来自SQLite数据库的数据。一栏是打开分配给该行的pdf的目录。该代码有效,但是,每当我单击列标题时,都会出现错误:

索引超出范围。必须为非负数并且小于集合的大小。

实际上,每当我单击列文本(仅“ PDF”或任何其他列的文本)时,都会引发该错误。但是,当我在文本外部(在排序框中的任意位置)单击时,它会重新排列我的列,这没关系。有任何想法吗?

该代码有效,打开了PDF,但是我不希望用户意外单击标题文本而导致程序崩溃。这是datagridview打开pdf的代码。

  private void dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
    {
        string filename = dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString();
        if (e.ColumnIndex == 3 && File.Exists(filename))
        {
            Process.Start(filename);
        } 
   }
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

c# datagridview winforms indexoutofrangeexception

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

枚举Linq查询结果

我有一些.NET 4.5代码:

var result = db.storedProcedure(param)
if (!result.Any()) { return; }
foreach (var entry in result)
{
    // Some code...
}
Run Code Online (Sandbox Code Playgroud)

foreach,抛出异常:

The query results cannot be enumerated more than once.
Run Code Online (Sandbox Code Playgroud)

如何检查是否result为空?我也尝试过if (result.Count() == 0),它也会在foreach循环中抛出相同的异常.我也试过了foreach (var entry in result.ToList()),也抛出同样的异常.

我试着按照这里这里的建议,没有运气.

我也尝试过:

var result = db.storedProcedure(param)
if (!result.Any()) { return; }
var resultList = result.ToList();
foreach (var entry in resultList) {}
Run Code Online (Sandbox Code Playgroud)

而且我仍然在该foreach循环中得到相同的异常.

必须有一些方法可以轻松检查Linq结果集是否为空.我究竟做错了什么?

.net c# linq foreach enumeration

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

试图访问x.IndexOf(x); 得到"没有重载的方法IndexOf采取'1'参数"

我似乎无法弄清楚为什么我一直收到这个错误.

方法IndexOf没有重载采用'1'参数

这是代码和错误:

c#

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