Tag: ado.net

获取表的架构

给定一个SQLConnection对象,如何获得单个表的模式? 前几天我正在尝试这个,我似乎能够从运行查询得到的DataSet中获取模式,但是我从连接中获得的所有模式信息似乎都与可用的表有关而不是表格的实际细节。 我确信有一种简单的方法可以做到这一点。

如何给出ADO.NET参数

我想创建一个向DB添加记录的SQL命令。 我尝试了以下代码,但它似乎没有工作: SqlCommand comand = new SqlCommand(“INSERT INTO Product_table Values(@Product_Name,@Product_Price,@Product_Profit,@p)”, connect); SqlParameter ppar = new SqlParameter(); ppar.ParameterName = “@Product_Name”; ppar.Value = textBox1.Text; MessageBox.Show(“Done”); comaand.Parameters.Add(ppar);

通过ODBC执行参数化SQL StoredProcedure

在C#WinForms应用程序中,我必须在MS SQL Express服务器上执行参数化存储过程。 数据库连接工作,过程工作,但我收到一条错误消息: 42000:缺少参数’@KundenEmail’ 虽然我确定我正确添加了参数。 也许你们中的一些人可以看看 – 我不知道该怎么搜索…… OdbcConnection ODBCConnection = new OdbcConnection(); try { ODBCConnection.ConnectionString = ODBCConnectionString; ODBCConnection.Open(); } catch (Exception DatabaseConnectionEx) { if (ODBCConnection != null) ODBCConnection.Dispose(); // Error Message return null; } OdbcParameter ODBCParameter = new OdbcParameter(“@KundenEmail”, OdbcType.NChar, 50); ODBCParameter.Value = KundenEmail; OdbcCommand ODBCCommand = new OdbcCommand(“getDetailsFromEmail”, ODBCConnection); ODBCCommand.CommandType = CommandType.StoredProcedure; […]

C#SQLConnection池

任何人都可以向我简要介绍如何在ADO.Net中进行连接池,我需要连接到3个独立的数据库。 其中2个在同一服务器中,另一个在另一个服务器中。 更好的代码片段..

从ADO.NET调用Oracle时批处理多个select语句

我想批处理多个select语句以减少到数据库的往返。 代码看起来像下面的伪代码。 它在SQL Server上运行完美,但在Oracle上不起作用 – Oracle抱怨sql语法。 我已经浏览了一下,我可以找到从Oracle返回多个结果集的唯一示例是使用存储过程。 是否可以在Oracle中执行此操作而不使用存储过程? 我正在使用MS Oracle数据提供程序,但如果需要,可以使用ODP.Net。 var sql = @” select * from table1 select * from table2 select * from table3″; DbCommand cmd = GetCommand(sql); using(var reader = cmd.ExecuteReader()) { dt1.Load(reader); reader.NextResult(); dt2.Load(reader); reader.NextResult(); dt3.Load(reader); }

处理’序列没有元素’例外

我正在更新我的购物车中的数量,但它正在抛出一个序列没有元素的例外。 我不知道这甚至意味着什么。 起初我以为可能在某处传递了空值,但事实并非如此,因为我已经检查过: Sequence不包含任何元素描述:在执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 exception详细信息:System.InvalidOperationException:Sequence不包含任何元素 来源错误: 第35行:var uid = WebSecurity.CurrentUserId; 第36行:var newqty = Request.Form [“Quantity”]; 第37行: OModel.Cart c =(来自database.Carts第38行中的项目: 其中item.UserId == uid && item.PartNumber == pnumber && item.OrderId == oid第39行:选择项目。)first(); 可能导致这种情况的任何想法?

SqlCommand还是SqlDataAdapter?

我正在创建类似小型收银员应用程序的东西,记录客户,员工,服务,销售和约会。 我正在使用Windows窗体,并在DataGrids中。 我已经创建了我将要用于该应用程序的数据库。 我想知道我是否应该使用SqlCommand-SqlDataReader或SqlDataAdapter-DataSet。 哪种方法更好?

从两个数据表中查找公共列,并将其用于LINQ中的Join条件

我有两个数据表,这些是完全动态的。 这些将在运行时生成。 现在我想通过查找公共列来加入这些表。 请查看以下代码以获取更多信息 public DataTable DataTableJoiner(DataTable dt1, DataTable dt2) { using (DataTable targetTable = dt1.Clone()) { var dt2Query = dt2.Columns.OfType().Select(dc => new DataColumn(dc.ColumnName, dc.DataType, dc.Expression, dc.ColumnMapping)); var dt2FilterQuery = from dc in dt2Query.AsEnumerable() where targetTable.Columns.Contains(dc.ColumnName) == false select dc; targetTable.Columns.AddRange(dt2FilterQuery.ToArray()); var rowData=from row1 in dt1.AsEnumerable() join row2 in dt2.AsEnumerable() on row1.Field(“ID”) equals row2.Field(“ID”) select […]

为什么SqlParameter名称/值构造函数将0视为null?

我在一段代码中发现了一个奇怪的问题,即即使其参数与数据源中的记录匹配,adhoc SQL查询也没有产生预期的输出。 我决定将以下测试表达式输入到即时窗口中: new SqlParameter(“Test”, 0).Value 这给了null的结果,让我挠头。 似乎SqlParameter构造函数将零视为空值。 以下代码生成正确的结果: SqlParameter testParam = new SqlParameter(); testParam.ParameterName = “Test”; testParam.Value = 0; // subsequent inspection shows that the Value property is still 0 谁能解释这种行为? 这是故意的吗? 如果是这样,它可能相当危险……

如何使用ExecuteScalar从插入的行中获取生成的id?

我知道在Oracle中我可以从插入的行中获取生成的id(或任何其他列)作为输出参数。 例如: insert into foo values(‘foo’,’bar’) returning id into :myOutputParameter 有没有办法做同样的事情,但使用ExecuteScalar而不是ExecuteNonQuery? 我不想使用输出参数或存储过程。 ps:我使用的是Oracle ,而不是sql server!