小编Pet*_*teT的帖子

从字符串创建类的实例

有没有办法根据我在运行时知道类的名称来创建类的实例.基本上我会在字符串中有类的名称.

.net c# instantiation system.type

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

获取第n个字符串出现的索引?

除非我错过了一个明显的内置方法,否则在字符串中第n次出现字符串的最快方法是什么?

我意识到我可以通过在循环的每次迭代中更新其起始索引来循环IndexOf方法.但这样做对我来说似乎很浪费.

.net c# string indexing indexof

99
推荐指数
4
解决办法
6万
查看次数

添加SqlCommand参数时应该何时使用"SqlDbType"和"size"?

有一个相关的问题:

将参数传递给SQLCommand的最佳方法是什么?

但我想知道差异是什么,以及不同方式是否存在任何问题.

我通常使用这样的结构:

using (SqlConnection conn = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(SQL, conn))
{
     cmd.CommandType = CommandType.Text;
     cmd.CommandTimeout = Settings.Default.reportTimeout;
     cmd.Parameters.Add("type", SqlDbType.VarChar, 4).Value = type;

     cmd.Connection.Open();

     using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
     {
         adapter.Fill(ds);
     }
      //use data                    
}
Run Code Online (Sandbox Code Playgroud)

现在有几种方法可以添加cmd参数,我想知道哪个是最好的:

cmd.Parameters.Add("@Name", SqlDbType.VarChar, 20).Value = "Bob";
cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = "Bob";
cmd.Parameters.Add("@Name").Value = "Bob";
cmd.Parameters.AddWithValue("@Name", "Bob");
Run Code Online (Sandbox Code Playgroud)

在我假设的变量传递中具有字段的长度是不可取的,因为它是可以在数据库中稍后更改的魔术值.它是否正确?它是否会导致以这种方式(性能或其他)传递varchar的任何问题,我假设它默认为varchar(max)或数据库等效.我很高兴这会奏效.

更关心我的部分是如果我使用上面列出的第三或第四个选项,则丢失SqlDbType枚举我根本不提供类型.有没有这种情况不起作用的情况我可以想象varchar被错误地转换为char或者反之亦然的问题,或者可能是带有小数的问题....

就数据库而言,我认为字段类型的变化远不如长度,因此值得保留?

.net c# ado.net sqlcommand

42
推荐指数
2
解决办法
6万
查看次数

winforms html编辑器

任何人都知道.NET的一个好的免费winforms html编辑器.理想情况下,我想要html和预览模式以及导出到pdf,word doc或类似的可能性.

虽然导出我可能会从html输出创建自己.

另一个不错的功能是从单词粘贴,删除你通常最终得到的所有额外标签,但再次,没有必要的很好.

.net html c# winforms

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

t-sql替换文本字段

我遇到了一个经典的问题,需要在sql 2000数据库的文本字段上进行字符串替换.这可能是整个列的更新或单个字段我不挑剔.

我已经找到了一些如何使用updatetext来实现它的例子,但它们往往是在存储过程中,有没有人知道包含在函数中的类似事情,所以我可以使用它,就像我通常使用Replace()一样.对于不知道的人来说,Replace()函数的问题在于它不支持文本字段.

编辑:我意识到我可能会使用varchar(8000),因此已将字段交换为此类型以解决问题.我从未找到真正的解决方案.

sql-server sql-server-2000

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

C#using语句捕获错误

我只是看着使用声明,我一直都知道它的作用,但直到现在还没有尝试使用它,我已经提出了以下代码:

 using (SqlCommand cmd = 
     new SqlCommand(reportDataSource, 
         new SqlConnection(Settings.Default.qlsdat_extensionsConnectionString)))
 {
     cmd.CommandType = CommandType.StoredProcedure;
     cmd.Parameters.Add("@Year", SqlDbType.Char, 4).Value = year;
     cmd.Parameters.Add("@startDate", SqlDbType.DateTime).Value = start;
     cmd.Parameters.Add("@endDate", SqlDbType.DateTime).Value = end;
     cmd.Connection.Open();

     DataSet dset = new DataSet();
     new SqlDataAdapter(cmd).Fill(dset);
     this.gridDataSource.DataSource = dset.Tables[0];
 }
Run Code Online (Sandbox Code Playgroud)

这似乎是工作,但有没有因为就在这个任何一点我可以告诉我还需要附上这在try catch块捕捉不可预见的错误,例如SQL服务器停机.我错过了什么吗?

据我目前所知,它只是阻止我关闭和处理cmd,但由于仍需要try catch,因此会有更多行代码.

c# using using-statement

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

.NET在winform中打开PDF而没有外部依赖性

是否有免费的图书馆,允许我打开PDF并在winform项目上显示它.我知道我可以在adobe reader或者其他东西中打开它,但它总是让我感到臃肿,我会依赖它安装.有一个很好的轻量级替代方案,我可以在我的项目中包含一个DLL或类似的避免外部依赖.

我不需要太多功能只是查看,更改页面缩放..

我见过几个库,但它们似乎是关于创建PDF而不是查看.

.net c#

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

ASP.NET主题图像

我如何设置一个图像来自一个主题目录(我的主题更改,所以我不想直接引用)我相信这是可能的,但我找到的每个例子似乎都不起作用.它们通常是这样的:

asp:image ID ="Image1"runat ="server"ImageUrl ="〜/ Web/Mode1.jpg"/

其中Web将是我的主题文件夹中的子目录.建议主题目录将在运行时添加.

asp.net themes

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

我如何说服他们需要从ms访问sql server或类似的东西升级

我正在与一个沉迷于ms访问的高度根深蒂固的开发人员一起工作.用户抱怨随机崩溃,锁定错误,冻结,应用程序放慢速度(特别是在2007年),但似乎非常不愿意移动它.大部分时间他们都责备计算机,并且无法确信它是mdb坐在网络驱动器上的事实,与坐在他们面前的硬件无关,这是全新的.

有一个前端vb程序挂起它,但我不认为它需要花费几个星期来调整,事实上我可能会重新编写它,因为它有来自前一个开发人员的年复杂的代码.

我最好的论据是说服他们我们需要移动它吗?

有没有其他人遇到类似问题的开发人员陷入困境?

sql-server ms-access

10
推荐指数
1
解决办法
1355
查看次数

处理DBNull.Value

我经常要处理连接到网格控件的DataTables,自定义更新似乎总会产生很多与DBNull.Value相关的代码.我在这里看到了类似的问题,但认为必须有一个更好的答案:

处理DBNull的最佳方法是什么?

我找到的是我倾向于在方法中封装我的数据库更新,所以我最终得到如下代码,我将DBNull.value移动到可以为空的类型,然后返回更新:

private void UpdateRowEventHandler(object sender, EventArgs e)
{
    Boolean? requiresSupport = null;
    if (grdMainLevel1.GetFocusedRowCellValue(colASRequiresSupport) != DBNull.Value)
        requiresSupport = (bool)grdMainLevel1.GetFocusedRowCellValue(colASRequiresSupport);

    AdditionalSupport.UpdateASRecord(year, studentID, requiresSupport)
}

internal static void UpdateASRecord(
        string year,
        string studentID,            
        bool? requiresSupport)
    {
        List<SqlParameter> parameters = new List<SqlParameter>();

        parameters.Add(new SqlParameter("@year", SqlDbType.Char, 4) { Value = year });
        parameters.Add(new SqlParameter("@student_id", SqlDbType.Char, 11) { Value = studentID });

        if (requiresSupport == null)
            parameters.Add(new SqlParameter("@requires_support", SqlDbType.Bit) { Value = DBNull.Value });
        else
            parameters.Add(new SqlParameter("@requires_support", SqlDbType.Bit) { Value = requiresSupport }); …
Run Code Online (Sandbox Code Playgroud)

.net c# dbnull

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