有没有办法根据我在运行时知道类的名称来创建类的实例.基本上我会在字符串中有类的名称.
除非我错过了一个明显的内置方法,否则在字符串中第n次出现字符串的最快方法是什么?
我意识到我可以通过在循环的每次迭代中更新其起始索引来循环IndexOf方法.但这样做对我来说似乎很浪费.
有一个相关的问题:
但我想知道差异是什么,以及不同方式是否存在任何问题.
我通常使用这样的结构:
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的一个好的免费winforms html编辑器.理想情况下,我想要html和预览模式以及导出到pdf,word doc或类似的可能性.
虽然导出我可能会从html输出创建自己.
另一个不错的功能是从单词粘贴,删除你通常最终得到的所有额外标签,但再次,没有必要的很好.
我遇到了一个经典的问题,需要在sql 2000数据库的文本字段上进行字符串替换.这可能是整个列的更新或单个字段我不挑剔.
我已经找到了一些如何使用updatetext来实现它的例子,但它们往往是在存储过程中,有没有人知道包含在函数中的类似事情,所以我可以使用它,就像我通常使用Replace()一样.对于不知道的人来说,Replace()函数的问题在于它不支持文本字段.
编辑:我意识到我可能会使用varchar(8000),因此已将字段交换为此类型以解决问题.我从未找到真正的解决方案.
我只是看着使用声明,我一直都知道它的作用,但直到现在还没有尝试使用它,我已经提出了以下代码:
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,因此会有更多行代码.
是否有免费的图书馆,允许我打开PDF并在winform项目上显示它.我知道我可以在adobe reader或者其他东西中打开它,但它总是让我感到臃肿,我会依赖它安装.有一个很好的轻量级替代方案,我可以在我的项目中包含一个DLL或类似的避免外部依赖.
我不需要太多功能只是查看,更改页面缩放..
我见过几个库,但它们似乎是关于创建PDF而不是查看.
我如何设置一个图像来自一个主题目录(我的主题更改,所以我不想直接引用)我相信这是可能的,但我找到的每个例子似乎都不起作用.它们通常是这样的:
asp:image ID ="Image1"runat ="server"ImageUrl ="〜/ Web/Mode1.jpg"/
其中Web将是我的主题文件夹中的子目录.建议主题目录将在运行时添加.
我正在与一个沉迷于ms访问的高度根深蒂固的开发人员一起工作.用户抱怨随机崩溃,锁定错误,冻结,应用程序放慢速度(特别是在2007年),但似乎非常不愿意移动它.大部分时间他们都责备计算机,并且无法确信它是mdb坐在网络驱动器上的事实,与坐在他们面前的硬件无关,这是全新的.
有一个前端vb程序挂起它,但我不认为它需要花费几个星期来调整,事实上我可能会重新编写它,因为它有来自前一个开发人员的年复杂的代码.
我最好的论据是说服他们我们需要移动它吗?
有没有其他人遇到类似问题的开发人员陷入困境?
我经常要处理连接到网格控件的DataTables,自定义更新似乎总会产生很多与DBNull.Value相关的代码.我在这里看到了类似的问题,但认为必须有一个更好的答案:
我找到的是我倾向于在方法中封装我的数据库更新,所以我最终得到如下代码,我将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)