行1のgetColumnNumber内のエラーバインディング -- c# フィールド と sql フィールド と console-application フィールド と officewriter フィールド 関連 問題

Error binding in GetColumnNumber at row 1












0
vote

問題

日本語

コンソールアプリケーションをデバッグするときにこのOffewriterエラーが発生しました。マスターデータベースからコーディングで使用されているデータベースの設定の詳細を取得し、このエラーが発生しました。

getColumnNumberでのエラーバインディング1

ここに添付されているのは私の仕事の部分的なコーディングです。誰でも私にエラーが何であるかを説明できますか?

<事前> <コード> SqlDataReader rdSource = getSource(); SqlDataReader rdDestination = getDestination(); SqlDataReader rdCode = getCode(); while (rdSource.Read() && rdDestination.Read()) { string src = rdSource["Value"].ToString(); string dest = rdDest["Value"].ToString(); ExcelTemplate XLT = new ExcelTemplate(); XLT.Open(src); DataBindingProperties dataProps = XLT.CreateBindingProperties(); XLT.BindData(rdCode, "Code", dataProps); XLT.Process(); XLT.Save(dest); } //rdCode method SqlDataReader rdConnection = getConnection(); //method for getting connection from master while (rdConnection.Read()) { string con = rdConnection["Value"].ToString(); SqlConnection sqlCon = new SqlConnection(con); string SQL = "SELECT * FROM Sales.Currency"; sqlCon.Open(); SqlCommand cmd = new SqlCommand(SQL, sqlCon); cmd.ExecuteReader(); sqlCon.Close(); } return rdConnection; //getConnection method string strCon = ConfigurationManager.ConnectionStrings["Master"].ConnectionString; SqlConnection sqlCon = new SqlConnection(strCon); string cSQL = "SELECT Value FROM dbo.COMMON_CONFIG WHERE Value = 'Data Source=localhost;Initial Catalog=Test;Integrated Security=True'"; SqlCommand cmd = new SqlCommand(cSQL, sqlCon); sqlCon.Open(); return new SqlCommand(cSQL, sqlCon).ExecuteReader(CommandBehavior.ConnectionString); //getSource & getDestination methods string strCon = ConfigurationManager.ConnectionStrings["Master"].ConnectionString; SqlConnection sqlCon = new SqlConnection(strCon); string srcPath = @"FILE PATH NAME"; //change to destPath for getDestination string sSQL = "SELECT Value FROM dbo.COMMON_CONFIG WHERE Value = '" + srcPath + "'"; SqlCommand cmd = new SqlCommand(cSQL, sqlCon); sqlCon.Open(); return new SqlCommand(cSQL, sqlCon).ExecuteReader(CommandBehavior.ConnectionString);
英語

I got this OfficeWriter error when debugging the console application. I used methods to retrieve config details for the database used in the coding from the master database, and ended up having this error.

Error binding in GetColumnNumber at row 1

Attached here is partial coding for my work. Anyone can explain me what the error is?

    SqlDataReader rdSource = getSource();     SqlDataReader rdDestination = getDestination();     SqlDataReader rdCode = getCode();      while (rdSource.Read() && rdDestination.Read())     {         string src = rdSource["Value"].ToString();         string dest = rdDest["Value"].ToString();          ExcelTemplate XLT = new ExcelTemplate();         XLT.Open(src);         DataBindingProperties dataProps = XLT.CreateBindingProperties();         XLT.BindData(rdCode, "Code", dataProps);         XLT.Process();         XLT.Save(dest);     }      //rdCode method     SqlDataReader rdConnection = getConnection(); //method for getting connection from master     while (rdConnection.Read())     {         string con = rdConnection["Value"].ToString();         SqlConnection sqlCon = new SqlConnection(con);          string SQL = "SELECT * FROM Sales.Currency";         sqlCon.Open();         SqlCommand cmd = new SqlCommand(SQL, sqlCon);         cmd.ExecuteReader();         sqlCon.Close();     }     return rdConnection;      //getConnection method     string strCon = ConfigurationManager.ConnectionStrings["Master"].ConnectionString;     SqlConnection sqlCon = new SqlConnection(strCon);     string cSQL = "SELECT Value FROM dbo.COMMON_CONFIG WHERE Value = 'Data Source=localhost;Initial Catalog=Test;Integrated Security=True'";     SqlCommand cmd = new SqlCommand(cSQL, sqlCon);     sqlCon.Open();     return new SqlCommand(cSQL, sqlCon).ExecuteReader(CommandBehavior.ConnectionString);      //getSource & getDestination methods     string strCon = ConfigurationManager.ConnectionStrings["Master"].ConnectionString;     SqlConnection sqlCon = new SqlConnection(strCon);     string srcPath = @"FILE PATH NAME"; //change to destPath for getDestination     string sSQL = "SELECT Value FROM dbo.COMMON_CONFIG WHERE Value = '" + srcPath + "'";     SqlCommand cmd = new SqlCommand(cSQL, sqlCon);     sqlCon.Open();     return new SqlCommand(cSQL, sqlCon).ExecuteReader(CommandBehavior.ConnectionString); 
</div
           
   
   

回答リスト

0
 
vote
vote
ベストアンサー
 

エラーは、テンプレートにデータをバインドできない場合にExcelWriterによってスローされる一般的なメッセージです。

これはgetCode()メソッドが原因であると思います。 getCode()では、SQLDataReaderを使用してデータベースの接続文字列を取得します。

<事前> <コード> SqlDataReader rdConnection = getConnection(); //method for getting connection from master

その後、そのデータベースに対してSQLクエリを実行しますが、SQLDataReaderでは実際にはSQLクエリを実行してデータを返します。

<事前> <コード> SqlCommand cmd = new SqlCommand(SQL, sqlCon); cmd.ExecuteReader(); //Note: This returns the SqlDataReader that contains the data

次にRDConnectionを返します。これは、接続文字列のSQLDataReaderです。インポートしようとしているデータではありません。 RDConnectionは1行を含んでいて、すでに読み取り()と呼ばれているので、読み取り先のレコードはありません。

<事前> <コード> SqlDataReader rdCode = getCode(); ... XLT.BindData(rdCode, "Code", dataProps);

バインドするSQLリーダーは、販売データではなく、使用されている「接続文字列」です。次のことをお勧めします。

  1. RDConnectionではなく、getCode()にcmd.executereader()によって生成された新しいSQLDataReaderを返します。
  2. この新しいSQLDataReaderへの接続を閉じないでください。 ExcelWriterはデータをバインドするためにデータリーダーを読み取ることができる必要があります。接続を閉じると、ExcelWriterはデータを正しくバインドできません。
 

The error is a generic message that is thrown by ExcelWriter when it is unable to bind data to the template.

I think this might be caused by your getCode() method. In getCode(), you use a SQLDataReader to retrieve the connection string for the database:

    SqlDataReader rdConnection = getConnection(); //method for getting connection from master 

Then you execute a SQL query against that database, but you don't actually get a handle on the SqlDataReader that is executing the SQL query to return the data.

    SqlCommand cmd = new SqlCommand(SQL, sqlCon);     cmd.ExecuteReader(); //Note: This returns the SqlDataReader that contains the data 

Then you return rdConnection, which is the SQLDataReader for the connection string - not the data you are trying to import. rdConnection contained 1 row and you already called Read(), so there are no records left to read.

 SqlDataReader rdCode = getCode();  ...  XLT.BindData(rdCode, "Code", dataProps); 

The SQL reader you are binding is the used 'connection string', rather than your sales data. I would recommend the following:

  1. Return the new SqlDataReader that is generated by cmd.ExecuteReader() in getCode(), rather than rdConnection.
  2. Do not close the connection to this new SqlDataReader. ExcelWriter needs to be able to read the data reader in order to bind the data. If you close the connection, ExcelWriter will not be able to bind data correctly.
</div
 
 
 
 

関連する質問

-1  特定のセルをDataTableから抽出し、コンソールアプリケーションで使用される値を取得する方法  ( How to extract certain cell from datatable and retrieve the value to be used in ) 
DTSourceとDTDestinationから何らかの値を取得する前に使用します。しかし、データベース内にいくつかの値が格納されている場合でも、その中に値を取得できないようです。 foreachはいくつかの値を取得するのに役立ちますか?デバッグしましたが、...

0  Classic ASPでオブジェクトを作成できません  ( Cannot create object in classic asp ) 
SoftArtisans Office Writerバージョン8を持っていて、Excel Viewer.Iもインストールされています。アプリケーションを実行するアプリケーションでExcelを開きたいと思うアプリケーションを実行しています。 「オブジェクトを作...

0  SoftartisansのExcelwriter v8バグ  ( Softartisans excelwriter v8 bug ) 
SoftartisansのExcelwriter v8は、マージされたセル式のバグを持っているようです。例えば: <事前> <コード> ExcelApplication xla = new ExcelApplication(); Workbo...

2  Assembly OfficeWriter.proces()からタイプ 'system.data.oledb.oledbType'をロードできませんでした  ( Could not load type system data oledb oledbtype from assembly officewriter pro ) 
wordtemplate.process()に到達すると、文書テンプレートのマージフィールドを作成しようとしているとき。タイプ 'system.data.oledb.oledbtype'をロードしようとしますが、noneが見つかりません。プロジェクトは.NE...

0  SoftArtisans Excelwriter XLSXファイルを開こうとしたときの重複キーエラーを返す  ( Softartisans excelwriter returning duplicate key error when attempting to open x ) 
Softartisans Excelwriterを使用して、さまざまなExcelファイルからデータを開いて処理します。 1つのファイルが最近次のエラーを与え始めました。 <コード> An item with the same key has already ...

0  ExcelWriterとSSRS統合を使用して非円グラフを作成できますか?  ( Can i create a non pie chart using excelwriter and ssrs integration ) 
SSRS(Ver 8.6)にSoftartisans Excelwriterを使用しています(ver 8.6)、(PIE以外の)チャートを作成することが可能であるかどうか疑問に思います。複数のシリーズを持つ積み上げ棒グラフ? 円グラフを簡単に作成できます。そ...

1  SSRSのデバッグレポートエラー  ( Debugging report error on ssrs ) 
OfficeWriterを使用して構築されたSSRSには、SSRに束のレポート(RDL)があります。 Excelテンプレートを更新した後にレポートにエラーが発生することがあります。レポートが細かくレンダリングされている間、[Office Writer for...

1  エラー:設定システムは初期化に失敗しました  ( Error configuration system failed to initialize ) 
コンソールアプリケーションと私は app.config ファイルに問題があります。右側には、コードはインターネットにあるさまざまなソースに従って正しいはずですが、私のコーディングは理由もなく機能しません。誰もが私にこれを助言することができますか? と<コード>...

0  ExcelSoftartisans - Open Streamを使用したSaveメソッドのバグ - クローズドファイルにアクセスできません  ( Excelsoftartisans bug on save method with open stream cannot accessed closed ) 
次の問題があります: ASP.NET GridViewを直接Excelファイルにエクスポートしています。 この方法で画像をヘッダーとして設定しています。 <事前> <コード> private static void insertPageHeaderFoote...

0  行1のgetColumnNumber内のエラーバインディング  ( Error binding in getcolumnnumber at row 1 ) 
コンソールアプリケーションをデバッグするときにこのOffewriterエラーが発生しました。マスターデータベースからコーディングで使用されているデータベースの設定の詳細を取得し、このエラーが発生しました。 getColumnNumberでのエラーバインディ...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有