首页 \ 问答 \ ADO.Net - 如何在不知道架构的情况下在表中插入数据(ADO.Net - How to insert data in table without knowing the schema)

ADO.Net - 如何在不知道架构的情况下在表中插入数据(ADO.Net - How to insert data in table without knowing the schema)

我有一个场景,我需要使用ADO.Net的数据表和适配器将一些数据插入到oracle表中。 表的模式未知。 我怎样才能做到这一点?


I have scenario where i need to insert some data into a oracle table using data tables and adapters of the ADO.Net. The schema of the table is not known. How can i do that?


原文:https://stackoverflow.com/questions/21545191
更新时间:2021-06-06 06:06

最满意答案

你看过这里 - 检索数据库架构信息 ? 您可以使用GetSchema方法来帮助您以编程方式检查数据库的架构。 该方法返回架构信息的DataTable 。 (尽管OracleClient现在在技术上已被弃用)。

string myConnection = @<fill in your connectionstring here>

using (OracleConnection connection = new OracleConnection(myConnection))
{
   connection.Open();

   DataTable schemaTable = connection.GetSchema("Tables");

   foreach(DataRow row in schemaTable.Rows)
      Console.WriteLine(row["TABLE_NAME"];
} // end using OracleConnection

将为您提供ConnectionString指向的数据库中的所有可用表。 如果您阅读了关于您的链接信息,您将发现可以使用这一个非常有用的方法进入整个数据库。 希望能帮到你的路!


Have you looked here - Retrieving Database Schema Information? You can use the GetSchema method to help you programmatically examine your database's schema. The method returns a DataTable of schema information. (although the OracleClient is technically deprecated now).

string myConnection = @<fill in your connectionstring here>

using (OracleConnection connection = new OracleConnection(myConnection))
{
   connection.Open();

   DataTable schemaTable = connection.GetSchema("Tables");

   foreach(DataRow row in schemaTable.Rows)
      Console.WriteLine(row["TABLE_NAME"];
} // end using OracleConnection

Will get you all the available tables in the database pointed at by your ConnectionString. If you read up on the linked info about you'll find that you can walk into your whole database using this one very useful method. Hope that sets you on your way!

相关问答

更多

SSIS和ADO.NET以及Azure(SSIS and ADO.NET and Azure)

通过消息,目标有一个标识字段,所以你有两个oprtions: 将ADO目标更改为OLEDB目标,并选中目标组件上的“保持标识”复选框 在您尝试插入记录的表上手动设置identity_insert ON。 by the message, the destination has an identity field, so you have two oprtions: change the ADO destination to an OLEDB destination and check the "ke ...

Dapper如何在ADO.Net中创建正确命令类的实例?(How does Dapper create an instance of the correct command class in ADO.Net?)

每个特定的DBConnection实现一个IDBConnection接口,该接口具有CreateCommand方法。 Dapper只是打电话给那个。 Each specific DBConnection implements an IDBConnection interface, which has a CreateCommand method. Dapper just calls that.

Sharepoint List到ADO.Net数据表(Sharepoint List to ADO.Net data table)

或者使用OM中的GetDataTable方法: SPWeb oWebsite = SPContext.Current.Web; SPList oList = oWebsite.Lists["List_Name"]; SPListItemCollection collListItems = oList.Items; DataGrid1.DataSource = collListItems.GetDataTable(); DataGrid1.DataBind(); Or using the Get ...

ADO.NET插入Mysql,所有数据都为空(ADO.NET Insert Mysql, All data is null)

您的表结构上有一个问题,您没有指定将在其他字段上使用的数据类型 create table using_user { `id` int(11) NOT NULL auto_increment, 'dx_ip_addr' default NULL, <--- no data type specified 'scard_type' default NULL, <--- no data type specified .... } 尝试 create table using_user ...

WCF ado.net插入记录(结尾)(WCF ado.net Insert record (at end))

好的,这真的很愚蠢。 在我的mssql表中,我没有启用该功能来添加具有自动增量的行。 至少,我启用它但增量设置为0.所以它会指向相同的记录。 Okay, this was really stupid. In my mssql table, i had not enabled the feature to add rows with auto increment. Atleast, i had it enabled but the increment was set to 0. So it woul ...

奇怪的Oracle 11 / ADO.NET错误(Bizarre Oracle 11 / ADO.NET Error)

您是否尝试过使用其他ADO.NET提供程序来查看是否可以将其缩小到MS? 哦,还要注意MS 最近宣布他们不打算继续他们的Oracle提供商,也许现在是寻找新的提供商的好时机。 DevArt (以前的CoreLabs)拥有最常用的第三方提供商。 FYI Toad for Oracle是用Delphi编写的,直接与Oracle调用接口(OCI)进行对话,因此您会看到不同的行为,这并不奇怪(不好,请注意)。 have you tried using another ADO.NET provider to ...

确定用于ado.net的数据文件格式(Determine data file format for use with ado.net)

DBF:旧的dBase格式,最有可能使用FoxPro创建(并非总是如此)。 试试这篇文章 。 DBF: old dBase format, most likely created using FoxPro (not always though). Try this article.

ADO.Net - 如何在不知道架构的情况下在表中插入数据(ADO.Net - How to insert data in table without knowing the schema)

你看过这里 - 检索数据库架构信息 ? 您可以使用GetSchema方法来帮助您以编程方式检查数据库的架构。 该方法返回架构信息的DataTable 。 (尽管OracleClient现在在技术上已被弃用)。 string myConnection = @<fill in your connectionstring here> using (OracleConnection connection = new OracleConnection(myConnection)) { connect ...

ADO.net中的数据关系(Data relation in ADO.net)

要了解Ado.Net中的数据关系,您可以阅读此内容。 当您使用多个数据表时,您可以自己编写代码(使用DataRelation) ,DataSet包含DataTable对象和DataRelation对象。 DataRelation对象表示两个表之间的关系,或者您可以使用ERD(实体关系图)来拖动和显示表之间的关系。 在我看来,数据库图表更好,因为它减少或免除你做额外的代码工作,但手动代码增加了灵活性和自定义。 To understand Data Relation in Ado.Net you ca ...

ADO.NET执行部分更新/插入(ADO.NET Performing a partial Update / Insert)

这里的问题原来是数据行的RowState。 通过DataAdapter填充DataSet时,对现有行和现有行的更改会将行的RowState设置为已修改。 添加到DataSet的数据被视为新行,其RowState将设置为Added。 RowState是只读字段,因此无法手动将其设置为“已修改”。 因此,从客户端收到的所有更新数据都应按如下方式添加: // ... where dataTransferObject.IsNew == false DataRow row = table.NewRow() ...

相关文章

更多

最新问答

更多
  • 如何从远程文件拉取文件而不覆盖本地文件?(How do I pull files from remote without overwriting local files?)
  • Reactjs:状态改变时重新渲染iframe(Reactjs: re-renders iframes when state changed)
  • 奇怪的网址,以及跟随php页面流程的困难(odd url, and difficulty in following the php page flow)
  • 标签活动无效(Tab Activity is not working)
  • JavaME合适的语法编译器建议?(JavaME-suitable grammar compiler recommendations?)
  • 指定参数(Specifying arguments)
  • 可以通过Ruby插件或控制台覆盖Sketchup中的键盘快捷键吗?(Can one override keyboard shortcuts in Sketchup through the a Ruby Plugin or Console?)
  • 计算Java EE Web App中用户数的最佳方法(Best way to count number of users in a Java EE web App)
  • 无法使用templateUrl加载cordova中的外部模板(unable to load external templates in cordova with templateUrl)
  • PHPExcel:写入期间无法使用缓存(PHPExcel: Unable to use cache during write)
  • 在javascript中嵌套这个指针(nested this pointer in javascript)
  • 谁跟领航致远培训过,有问题问下啊
  • 控制器要求在入门时下载(Controller ask to download on entry)
  • 未能通过conda安装Asyncio(Failure to install Asyncio via conda)
  • 如何查找已完成项目的总长度?(How to find length of total completed items?)
  • 如何检查OleInitialize是否已被调用?(How to check if OleInitialize has already been called?)
  • SQL在特定范围内返回列中具有最大值的行(SQL Returning rows with max value in column, within a specific range)
  • preg_match从url获取id(preg_match get the id from url)
  • 如何在运算符中为make方程转换perl变量?(How to convert a perl variable in a operator for make equations?)
  • 在导航上方添加空格/标题。(Add a white space/ header above navigation.)
  • MeetingItem已保存;(MeetingItem saved; but change now shown in Calendar)
  • c#vb:我们应该使用System.Lazy进行资源密集型任务吗?(c# vb: Should we use System.Lazy for resource-intensive task? (when threading is not needed))
  • 为什么在armeabi代码中使用armeabi-v7a代码?(Why use armeabi-v7a code over armeabi code?)
  • 获取请求的自定义标头(Java HTTP)(Fetching a custom header of a request (Java HTTP))
  • 是否可以在嵌套的if语句中从varchar转换为numeric以动态评估参数?(Is it possible to convert from varchar to numeric within a nested if statement in order to dynamically evaluate a parameter?)
  • 如何将Html.ActionLink转换为链接到Ajax调用的按钮?(How to convert from Html.ActionLink to a button linked to Ajax call?)
  • 应用程序如何处理Windows符号链接?(How are Windows symbolic links treated by the apps?)
  • html,js,css在jsfiddle中工作,但不在sharepoint中(html, js, css works in jsfiddle but not in sharepoint)
  • 从Ruby脚本调用Elasticsearch Rest API(Calling Elasticsearch Rest API from Ruby script)
  • 如何将嵌套setTimeouts转换为承诺(How to convert nested setTimeouts to promises)