小编JYe*_*ton的帖子

绑定到SqlDataAdapter时如何确定DataGridView是否包含未提交的更改

我有一个包含DataGridView,BindingSource,DataTable和SqlDataAdapter的表单。我按如下所示填充网格和数据绑定:

private BindingSource bindingSource = new BindingSource();
private DataTable table = new DataTable();
private SqlDataAdapter dataAdapter = new SqlDataAdapter("SELECT * FROM table ORDER BY id ASC;", ClassSql.SqlConn());
private void LoadData()
{
    table.Clear();
    dataGridView1.AutoGenerateColumns = false;
    dataGridView1.DataSource = bindingSource;
    SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
    table.Locale = System.Globalization.CultureInfo.InvariantCulture;
    dataAdapter.Fill(table);
    bindingSource.DataSource = table;
}
Run Code Online (Sandbox Code Playgroud)

然后,用户可以对数据进行更改,然后分别单击保存或取消按钮来提交更改或放弃更改。

private void btnSave_Click(object sender, EventArgs e)
{
    // save everything to the displays table
    dataAdapter.Update(table);
}

private void btnCancel_Click(object sender, EventArgs e)
{
    // alert user if unsaved …
Run Code Online (Sandbox Code Playgroud)

c# sql winforms

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

如何通过路径检索特定XML节点的值?

我正在寻找这个问题的Javascript解决方案:

我有一个XML文档,它通过典型的AJAX方法加载:

var xml = http.responseXML;

请考虑以下示例xml片段:

<main>
    <primary>
         <enabled>true</enabled>
     </primary>
     <secondary>
         <enabled>true</enabled>
     </secondary>
 </main>
Run Code Online (Sandbox Code Playgroud)

我想通过指定路径获取节点的值,如下所示:

var second_enabled = getNodeValueByPath('main/secondary/enabled', xml);
Run Code Online (Sandbox Code Playgroud)

做这样的事情我找不到任何简洁的方法.我似乎被迫在使用之后迭代节点集合getElementsByTagName等.

我将如何构造该方法,getNodeValueByPath或者在Javascript中是否有一些允许这样做的构造?

我不熟悉Javascript.

编辑:这是一个示例,显示我尝试使用XPath及其失败的方式:

XML:

<?xml version="1.0" ?>
<main xmlns="example.com">
  <primary>
    <enabled>true</enabled>
  </primary>
  <secondary>
    <enabled>false</enabled>
  </secondary>
</main>
Run Code Online (Sandbox Code Playgroud)

JavaScript :(这些只是相关的功能)

function useHttpResponse()
{
    if (http.readyState == 4)
    {
        if(http.status == 200)
        {
            var xml = http.responseXML;
            var evalue = getXMLValueByPath('/main/secondary/enabled', xml);
            alert(evalue);
        }
    }
}

function getXMLValueByPath(nodepath, xml)
{
    var result = xml.evaluate(nodepath, xml, …
Run Code Online (Sandbox Code Playgroud)

javascript xml xpath

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

在不安全的代码中设置图像像素时如何避免"噪音"

我正在使用C#winforms项目中的"不安全"代码创建(然后更改)位图.这是每30ms左右完成的.我遇到的问题是"噪声"或随机像素有时会出现在结果位图中,我没有特别改变任何东西.

例如,我创建了一个100x100的位图.使用BitmapDataLockBits,我遍历位图并将某些像素更改为特定颜色.然后我UnlockBits设置一个图片框来使用图像.我设置的所有像素都是正确的,但我没有特别设置的像素有时看似是随机颜色.

如果我设置每个像素,噪音就会消失.但是,出于性能原因,我宁愿只设置最小数量.

任何人都可以解释为什么这样做?

这是一些示例代码:

// Create new output bitmap
Bitmap Output_Bitmap = new Bitmap(100, 100);

// Lock the output bitmap's bits
Rectangle Output_Rectangle = new Rectangle(
    0,
    0,
    Output_Bitmap.Width,
    Output_Bitmap.Height);
BitmapData Output_Data = Output_Bitmap.LockBits(
    Output_Rectangle,
    ImageLockMode.WriteOnly,
    PixelFormat.Format32bppRgb);

const int PixelSize = 4;
unsafe
{
    for (int y = 0; y < Output_Bitmap.Height; y++)
    {
        for (int x = 0; x < Output_Bitmap.Width/2; x++)
        {
            Byte* Output_Row = (Byte*)Output_Data.Scan0 + y * Output_Data.Stride;
            Output_Row[(x …
Run Code Online (Sandbox Code Playgroud)

c# unsafe image-processing winforms

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

优化多个网页的下载.C#

我正在开发一个应用程序,我需要下载一堆网页,最好尽快.我现在这样做的方式是我有多个拥有自己的线程(100)System.Net.HttpWebRequest.这种作品,但我没有得到我想要的表现.目前我有600+ Mb/s的强大连接,而且最多只能使用10%(峰值).我想我的策略存在缺陷,但我无法找到其他任何好办法.

另外:如果使用HttpWebRequest不是下载网页的好方法,请说明:)代码已经从java半自动转换.

谢谢 :)

更新:

public String getPage(String link){
   myURL = new System.Uri(link);
   myHttpConn = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(myURL);
   myStreamReader = new System.IO.StreamReader(new System.IO.StreamReader(myHttpConn.GetResponse().GetResponseStream(),
            System.Text.Encoding.Default).BaseStream,
                new System.IO.StreamReader(myHttpConn.GetResponse().GetResponseStream(),
                    System.Text.Encoding.Default).CurrentEncoding);

        System.Text.StringBuilder buffer = new System.Text.StringBuilder();

        //myLineBuff is a String
        while ((myLineBuff = myStreamReader.ReadLine()) != null)
        {
            buffer.Append(myLineBuff);
        }
   return buffer.toString();
}
Run Code Online (Sandbox Code Playgroud)

c# optimization http

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

在C#Windows窗体中更改控件状态时,如何忽略触发的简单事件?

我在C#Windows窗体中创建一个简单的表单并遇到一种常见的情况,一个控件可以改变另一个控件的状态,但两个控件的事件都会触发其他一些方法.

例如,考虑a CheckboxNumericUpDown其中任何一个的状态或值应触发重绘的内容.将NumericUpDown取决于Checkbox它可能被禁用或忽略,除非意义Checkbox被选中.

但是,用户可以方便地更改NumericUpDown值,并且Checkbox如果尚未自动检查则自动进行检查.

所以这里是有问题的方法:

private void chkState_CheckedChanged(object sender, EventArgs e)
{
    RedrawStuff();
}

private void numStateValue_ValueChanged(object sender, EventArgs e)
{
    if (!chkState.Checked)
        chkState.Checked = true;
    RedrawStuff();
}
Run Code Online (Sandbox Code Playgroud)

问题当然是改变NumericUpDown价值导致RedrawStuff()两次火灾.

我的解决方法是引入一个布尔值,我可以有效地否定这种行为,但有时它会变得混乱:

bool _preventStateChange;

private void chkState_CheckedChanged(object sender, EventArgs e)
{
    if (_preventStateChange)
        return;
    RedrawStuff();
}

private void numStateValue_ValueChanged(object sender, EventArgs e)
{
    _preventStateChange = true;
    if (!chkState.Checked)
        chkState.Checked = true;
    RedrawStuff();
    _preventStateChange = false; …
Run Code Online (Sandbox Code Playgroud)

c# events winforms

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

如何分析我的 C# 应用程序?

可能的重复:
什么是好的 .NET 分析器?
有没有不错的 C# 分析器?

我经常想分析我们团队项目中的代码以比较速度和效率。但是,根据 Microsoft 的性能分析初学者指南,Visual Studio 性能向导不是我们使用的 Visual Studio 2010 Professional 的一部分。

鉴于此限制,似乎需要第三方应用程序。我怀疑我能否说服我的老板在分析应用程序上花很多钱。我有哪些选择,以及如何使用这样的工具?

编辑

感谢您提供有关哪些分析器可用的其他问题的链接。很有用!我正在编辑这个问题,以更多地关注如何使用这些分析器。有什么显着差异吗?在可用性方面?

c# profiling

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

WebClient.UploadFile失败,"请求已中止:请求已取消."

我正在尝试使用WebClient.UploadFile将文件上传到HTTP URL .对于1M,2M等小文件,上传成功.但是对于像12M这样的大文件,我得到了这个例外:

The request was aborted: The request was canceled.
Run Code Online (Sandbox Code Playgroud)

有没有人以前遇到过这个问题,你能分享一下解决方案吗?

一些信息:

  • 服务器正在使用ASP.NET 3.5.
  • 我上传时使用的HTTP方法是"PUT".

web-applications

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

使用左外连接进行允许为null的多对多关系

我在MySQL涉及三个表一个多一对多表关系tickets,ticket_solutionssolutions.(票证可能有多个解决方案,解决方案适用于多张票证.)

这是表结构,简化:

tickets    ticket_solutions    solutions
-----      -----               -----
id         ticket_id           id
           solution_id         solution
Run Code Online (Sandbox Code Playgroud)

(在这个例子中,所有的字段都INT,除了solutions.solution它是VARCHAR.)由于一些门票都没有完成,他们可能没有任何解决方案.

我写了以下查询:

SELECT t.id, GROUP_CONCAT(DISTINCT sol.solution SEPARATOR ', ') solutions
FROM tickets t
LEFT JOIN ticket_solutions tsol ON (tsol.ticket_id = t.id)
LEFT JOIN solutions sol ON (tsol.solution_id = sol.id)
GROUP BY t.id DESC;
Run Code Online (Sandbox Code Playgroud)

我的问题在于第二个问题LEFT JOIN.在ticket_solutions给定票证的链接器表()中存在条目的任何情况下,总会有匹配的记录solutions.但是,如果我尝试使用INNER JOIN,我不再获得缺乏解决方案的门票.

根据我的想法,NULL值发生的唯一时间是tickets链接器表和链接器表之间的关系.(没有任何解决方案的门票.)

我必须LEFT JOIN在链接器表之间使用, …

mysql many-to-many

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

如何将可空的bool绑定到复选框?

我将信息显示为ThreeState启用的复选框,并希望以最简单的方式使用可空的布尔值.

目前我正在使用嵌套的三元表达式; 但有更明确的方式吗?

bool? foo = null;
checkBox1.CheckState = foo.HasValue ?
    (foo == true ? CheckState.Checked : CheckState.Unchecked) :
    CheckState.Indeterminate;
Run Code Online (Sandbox Code Playgroud)

*请注意,复选框和表单是只读的.

.net nullable winforms

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

追踪第0行错误的未知

从Apache错误日志:

[2012年12月3日14:58:01] [错误] [客户端xxxx] PHP致命错误:允许内存大小为16777216字节耗尽(尝试分配884830字节)在第0行的未知中,参考:https:// www.使用domain.tld /引荐

为什么说"0号线未知"?为什么不"在xx行上的Filename.php"?

php

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