Tag: .net

在CLOB字段中,.NET中的OraOLEDB提供程序是否不可靠?

我有一个查询似乎从OleDbDataReader返回错误的数据。 我已经包含了下面的实际代码(用户ID和密码已更改)。 我正在运行Oracle Express 10g。 如果我在Oracle Web Admin Utility中运行以下SQL,来自Toad,或者如果我将下面的代码更改为OracleConnection,则返回的所有4条记录都在“answer_text”列中具有值。 但是,从OleDbDataReader,这段代码在第二条记录上抛出一个exception,它为“answer_text”而不是预期值返回null:“这是第二个开放式评论。现在事情真的变得疯狂了。” 有问题的字段在数据库中定义为CLOB。 所以我的问题是,OraOLEDB提供商是否显然不可靠? 这是非常不稳定的行为。 4条记录中的3条正确返回数据。 简单地用OleDbConnection更改OracleConnection并从连接字符串中删除“Provider”似乎工作正常。 但是,出于分发/支持原因,我认为我的客户不想这样做。 Oracle只是我们支持的4个数据库供应商中的一个,并且此代码适用于其余部分。 这是一个已知的错误? 我缺少一些神秘的设置吗? 我对Oracle没有太多经验,而且我在google搜索这个问题时找不到任何东西。 任何意见,将不胜感激。 var connection = new OleDbConnection(“Provider=OraOLEDB.Oracle;Data Source=localhost;User Id=x;Password=x;”); connection.Open(); var command = connection.CreateCommand(); command.CommandText = “select response_id, item_id, subitem_id, answer_id, answer_text, other_text, column_answer_id from sur_response_answer where item_id in (180, 181)”; var reader = command.ExecuteReader(); while […]

获取word文档的页面

我试图通过Microsoft.Office.Interop.Word获取MSWord文档的所有页面(我在VS2012中使用C#)。 我想得到的是List Pages,其中index是页面数。 我理解(至少我认为是这样),没有直接的方法可以做到这一点。 所以我想出了类似的东西: List Pages = new List(); int NumberOfPreviousPage = -1; int NumberOfPage = -1; string InnerText = “”; for (int i = 0; i < Doc.Paragraphs.Count; i++) { Paragraph CurrentParagraph = Doc.Paragraphs[i + 1]; InnerText = CurrentParagraph.Range.Text; NumberOfPage = CurrentParagraph.Range.get_Information(WdInformation.wdActiveEndPageNumber); if (NumberOfPage == NumberOfPreviousPage) Pages[Pages.Count – 1] += String.Format("\r\n{0}", InnerText); else […]

在C#中解密PKCS#7加密数据

我正在研究一种需要解密PKCS#7加密数据的解决方案,最好是在C#中。 据我所知,.NET api通过System.Security.Cryptography.Pkcs命名空间支持这一点。 但是,似乎实现只能在字节数组上工作。 那么当我有一个不适合内存的大型加密文件时,我该怎么办? 我在这里遗漏了什么,或者是否有另一种方法在Stream级别上执行此操作而不是使用bytearrays?

托管C ++ / CLI方法中的可选参数

当在C#中使用时,如何在C ++ / CLI中声明具有可选参数的托管方法? 我使用Optional和DefaultParameterValue属性修饰了参数(请参阅: 如何编码默认参数值 ),但只有Optional属性才被尊重。 C ++ / CLI: public ref class MyClass1 { public: MyClass1([System::Runtime::InteropServices::Optional] [System::Runtime::InteropServices::DefaultParameterValue(2)] int myParam1) ↑ { System::Console::WriteLine(myParam1); } }; C#: var myInstance1 = new MyClass1(); // compiles and runs 输出 : 0 预期产出: 2 Visual C#IntelliSense: MyClass1.MyClass1([int myParam1 = 0]); // wrong default value ↑ 编辑:仔细观察反汇编程序会发现C ++ / […]

处理和转换中哪一个更快int.Parse(),int.TryParse(),Convert.Int32()

哪一个更快,更强大,更可靠。 为什么? int.Parse() int.TryParse() Convert.ToInt32()

如何将天数转换为年,月和日

如果我有两个约会,那么我会在几天内得到它们之间的区别像这篇文章 。 如何在以下视图中详细说明: 将天number of years,number of months and the rest in the number of days转换为( number of years,number of months and the rest in the number of days )

.NET中的热图样式渐变

我正在尝试使用与此类似的渐变创建热图: 此图像显示三个点,渐变很好地融合在一起。 这是我目前在绘图function中所做的事情: public void DrawGradient(int x, int y, Graphics g) { using (var ellipsePath = new GraphicsPath()) { var bounds = new Rectangle(x, y, 100, 100); ellipsePath.AddEllipse(bounds); var brush = new PathGradientBrush(ellipsePath); Color[] colors = { Color.FromArgb(64, 0, 0, 255), Color.FromArgb(140, 0, 255, 0), Color.FromArgb(216, 255, 255, 0), Color.FromArgb(255, 255, 0, 0) }; float[] […]

使用先前生成的带有.net框架的RSA公钥/私钥

我有一个预先存在的RSA加密公钥/私钥对,我需要在.net中使用。 我在网上找到的所有例子都演示了如何生成新的私有/公共对,然后加密/解密。 即。 像这样的东西: const int PROVIDER_RSA_FULL = 1; const string CONTAINER_NAME = “SpiderContainer”; CspParameters cspParams; cspParams = new CspParameters(PROVIDER_RSA_FULL); cspParams.KeyContainerName = CONTAINER_NAME; cspParams.Flags = CspProviderFlags.UseMachineKeyStore; cspParams.ProviderName = “Microsoft Strong Cryptographic Provider”; rsa = new RSACryptoServiceProvider(cspParams); ….. rsa.encrypt(…) rsa.decrypt(…) 可以看出,没有用于指定预先存在的公钥/私钥的途径。 谁会知道如何完成我想要做的事情? 任何帮助将非常感激。 干杯纳伦

WPF datagrid“此视图不允许使用EditItem”exception

我以编程方式添加DataGrid : System.Windows.Controls.DataGrid dataGrid = new System.Windows.Controls.DataGrid(); dataGrid.GridLinesVisibility = DataGridGridLinesVisibility.None; dataGrid.HorizontalScrollBarVisibility = ScrollBarVisibility.Hidden; dataGrid.Background = Brushes.White; DataGridTextColumn textColumn = new DataGridTextColumn(); textColumn.Width = 250; textColumn.Header = “Account”; textColumn.Binding = new Binding(“Account”); dataGrid.Columns.Add(textColumn); 当我添加Item时: Globals_Liker.list_datagrid [tabControl1.SelectedIndex] .Items.Add(Globals_Liker.list_item [tabControl1.SelectedIndex] [I]); 但如果我双击项目我有错误: 此视图不允许使用“EditItem”。 如何使该错误不会弹出?

如何从GUID生成8个字节的唯一ID?

我尝试在我们的C#应用​​程序中使用long作为唯一ID(不是全局的,仅用于一个会话)用于我们的事件。 你知道以下是否会生成一个唯一的长ID? public long GenerateId() { byte[] buffer = Guid.NewGuid().ToByteArray(); return BitConverter.ToInt64(buffer, 0); } 为什么我们不直接使用GUID? 我们认为8字节长就足够了。