C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.94163 の関連記事表示

<< 0 >>
■94163  excelファイル内のデータの切り分け・更新の方法について
□投稿者/ miyabi -(2020/03/23(Mon) 11:07:16)

    分類:[.NET 全般] 


    知識、技術不足なため、ご助力いただきたく
    何卒よろしくお願いいたします。

    別アプリケーションで添付したExcelファイルを切り分けて、それぞれ二つのテーブルに追加したいと思っています。
    現状、単一テーブルへのデータの追加については実行することが出来ているのですが、データを切り分ける方法と
    複数テーブルへの追加方法が分からずにいます。何か良い方法はないでしょうか?

    ご教授のほど、よろしくお願いいたします。

    ◇開発及びテスト環境
    Visual Studio2019
    Excel2013
    SQL Server2017
親記事 /過去ログ163より / 関連記事表示
削除チェック/

■94165  Re[1]: excelファイル内のデータの切り分け・更新の方法について
□投稿者/ はまぐり -(2020/03/23(Mon) 11:44:00)
    No94163 (miyabi さん) に返信

    Excelファイルを切り分けるっていうのは
    このデータはこっちのテーブルに追加
    このデータはあっちのテーブルに追加
    みたいに判別するってことですか?

    どういうデータのときにどのテーブルになるか
    条件を洗い出してチェックすれば良さそうですので
    そんな感じで良さそうです(セクシー論法)
記事No.94163 のレス /過去ログ163より / 関連記事表示
削除チェック/

■94168  Re[2]: excelファイル内のデータの切り分け・更新の方法について
□投稿者/ miyabi -(2020/03/23(Mon) 13:04:55)
    No94165 (はまぐり さん) に返信

    > Excelファイルを切り分けるっていうのは
    > このデータはこっちのテーブルに追加
    > このデータはあっちのテーブルに追加
    > みたいに判別するってことですか?
    >
    > どういうデータのときにどのテーブルになるか
    > 条件を洗い出してチェックすれば良さそうですので
    > そんな感じで良さそうです(セクシー論法)

    返信ありがとうございます。

    おっしゃる通りExcelファイルの列ごとにテーブルAには「列1,列2,列4」テーブルBには「列3,列5」のように
    親子関係のテーブル二つにデータを登録したいと考えております。

    今までノンプログラミングの開発環境だったため、.netについては1週間程度しか触っておらず、どのように条件をチェックすればよいのかが
    わからない状態です。

    以上、よろしくお願いいたします。
記事No.94163 のレス /過去ログ163より / 関連記事表示
削除チェック/

■94164  Re[1]: excelファイル内のデータの切り分け・更新の方法について
□投稿者/ kiku -(2020/03/23(Mon) 11:42:25)
    No94163 (miyabi さん) に返信
    > 別アプリケーションで添付したExcelファイルを切り分けて、それぞれ二つのテーブルに追加したいと思っています。
    > 現状、単一テーブルへのデータの追加については実行することが出来ているのですが、データを切り分ける方法と
    > 複数テーブルへの追加方法が分からずにいます。何か良い方法はないでしょうか?
    >
    > ご教授のほど、よろしくお願いいたします。
    >
    > ◇開発及びテスト環境
    > Visual Studio2019
    > Excel2013
    > SQL Server2017

    どんなアプリを作成したいのか、わかりませんでした。
    また、具体的にどこの部分がわからないのか、わかりませんでした。

    どんなアプリなのかについて、想像してみました。

    ・アプリを起動すると、画面が表示される。
    ・Excel取り込みボタンを押下すると、
     Excelファイルを指定するダイアログが出てファイルを選択すると、
     指定したExcelファイルの情報を取り込む。
    ・DB登録ボタンを押下すると、取り込んだ情報をDBに保存する。

    やりたいことは上記であっていますか?
記事No.94163 のレス /過去ログ163より / 関連記事表示
削除チェック/

■94166  Re[2]: excelファイル内のデータの切り分け・更新の方法について
□投稿者/ kiku -(2020/03/23(Mon) 11:44:42)
    No94164 (kiku さん) に返信
    >>現状、単一テーブルへのデータの追加については実行することが出来ているのですが、データを切り分ける方法と
    >>複数テーブルへの追加方法が分からずにいます。何か良い方法はないでしょうか?

    複数テーブルの追加方法がわからないのですね。
    ちゃんと読んでなくてすみません。

    単一テーブルへのどのように実現していますか?
記事No.94163 のレス /過去ログ163より / 関連記事表示
削除チェック/

■94167  Re[2]: excelファイル内のデータの切り分け・更新の方法について
□投稿者/ miyabi -(2020/03/23(Mon) 12:52:05)
    No94164 (kiku さん) に返信

    > どんなアプリを作成したいのか、わかりませんでした。
    > また、具体的にどこの部分がわからないのか、わかりませんでした。
    >
    > どんなアプリなのかについて、想像してみました。
    >
    > ・アプリを起動すると、画面が表示される。
    > ・Excel取り込みボタンを押下すると、
    >  Excelファイルを指定するダイアログが出てファイルを選択すると、
    >  指定したExcelファイルの情報を取り込む。
    > ・DB登録ボタンを押下すると、取り込んだ情報をDBに保存する。
    >
    > やりたいことは上記であっていますか?

    返信ありがとうございます。

    現状、別アプリケーションで添付したExcelファイルをFunctionプロシージャの引数で宣言し
    下記コードで読み込みを行っています。

    ''' <summary>
    ''' Excelファイル読み込み
    ''' </summary>
    ''' <param name="file"></param>
    ''' <returns></returns>
    'Private Function RequestFile(ByVal file As String) As XLWorkbook
    ' Dim url As String = ConfigurationManager.AppSettings("downloadpath") & HttpUtility.UrlEncode(file.Replace("|", ""))

    ' Dim ServerXML As New MSXML2.ServerXMLHTTP60()
    ' ServerXML.open("GET", url, False)
    ' Dim lResolve As Integer = 60 * 1000
    ' Dim lConnect As Integer = 60 * 1000
    ' Dim lSend As Integer = 60 * 1000
    ' Dim lReceive As Integer = 60 * 1000
    ' ServerXML.setTimeouts(lResolve, lConnect, lSend, lReceive)
    ' ServerXML.send()
    ' Dim strm As MemoryStream = New MemoryStream(DirectCast(ServerXML.responseBody, Byte()))

    ' Dim book = New XLWorkbook(strm)

    ' strm.Close()

    ' Return book
    'End Function

    やりたいことといたしましては、読み込んだExcelファイル(列1,列2,列3,列4,列5)のデータを
    親子関係のテーブルA(列1,列2,列4)とテーブルB(列3,列5)にそれぞれ追加したいと考えております。

    単一テーブルへの追加は以下のようなコードで実行しております。

    'Function SinseiDataImport(ByVal connectName As String, ByVal file As String) As JsonResult

    ' Dim rtn As New JsonResult()
    ' Dim mdl As New ReturnMdl
    ' Me.Response.AddHeader("Access-Control-Allow-Origin", "*")
    ' rtn.JsonRequestBehavior = JsonRequestBehavior.AllowGet

    ' Dim check As String = Me.haitacheck(connectName)

    ' Try

    ' Dim book As XLWorkbook = Me.RequestFile(file)

    ' Using con As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings(connectName).ConnectionString)

    ' con.Open()

    ' Dim trn2 As SqlTransaction = con.BeginTransaction()

    ' Dim sb As New StringBuilder
    ' Dim cnt As New Integer
    ' sb.Clear()
    ' sb.AppendLine(" INSERT INTO インポートテスト   ( ")
    ' sb.AppendLine(" テスト項目1     ")
    ' sb.AppendLine(" ,テスト項目2   ")
    ' sb.AppendLine(" ) VALUES ( ")
    ' sb.AppendLine(" @テスト項目1 ")
    ' sb.AppendLine(" ,@テスト項目2 ")
    ' sb.AppendLine(" ) ")

    ' Dim sheet As IXLWorksheet = book.Worksheets(0)

    ' For i = 2 To sheet.RowCount

    ' If String.IsNullOrEmpty(sheet.Cell(i, インポートテスト.テスト項目1).Value) Then
    ' Exit For
    ' End If

    ' cnt += con.Execute(sb.ToString(),
    ' New With {.テスト項目1 = sheet.Cell(i, インポートテスト.テスト項目1).Value _
    ' , .テスト項目2 = sheet.Cell(i, インポートテスト.テスト項目2).Value} _
    ' , trn2)

    ' Next

    ' trn2.Commit()
    ' OutPutLog("処理件数" & cnt)
    ' End Using


    ' Catch ex As Exception

    説明不足かつ長々と書いて申し訳ありません。
    以上、よろしくお願いいたします。



記事No.94163 のレス /過去ログ163より / 関連記事表示
削除チェック/

■94169  Re[3]: excelファイル内のデータの切り分け・更新の方法について
□投稿者/ kiku -(2020/03/23(Mon) 13:28:52)
    2020/03/23(Mon) 13:30:46 編集(投稿者)

    No94167 (miyabi さん) に返信
    > ' For i = 2 To sheet.RowCount
    >
    > ' If String.IsNullOrEmpty(sheet.Cell(i, インポートテスト.テスト項目1).Value) Then
    > ' Exit For
    > ' End If
    >
    > ' cnt += con.Execute(sb.ToString(),
    > ' New With {.テスト項目1 = sheet.Cell(i, インポートテスト.テスト項目1).Value _
    > ' , .テスト項目2 = sheet.Cell(i, インポートテスト.テスト項目2).Value} _
    > ' , trn2)
    >
    > ' Next
    >
    > ' trn2.Commit()

    上記のForNextで「インポートテスト」テーブルにインサートしていますが、
    このForNextを、もう1つのテーブルに対して、実行すれば良いと思いますが、
    何か問題になりますか?

    挿入位置は、NextとCommitの間が良いと思います。

    ※C#ならコードを示せるんですが、VB.NETなので方向性のみコメントします。
記事No.94163 のレス /過去ログ163より / 関連記事表示
削除チェック/

■94170  Re[4]: excelファイル内のデータの切り分け・更新の方法について
□投稿者/ miyabi -(2020/03/23(Mon) 13:55:26)
    No94169 (kiku さん) に返信

    > 上記のForNextで「インポートテスト」テーブルにインサートしていますが、
    > このForNextを、もう1つのテーブルに対して、実行すれば良いと思いますが、
    > 何か問題になりますか?
    >
    > 挿入位置は、NextとCommitの間が良いと思います。
    >
    > ※C#ならコードを示せるんですが、VB.NETなので方向性のみコメントします。

    返信ありがとうございます。

    For文をもう一つ作成し、検証してみることにします。

    一つだけ疑問があるのですが
    同じFor文をもう一つ挿入する場合、例で書かせていただいたようにテーブルAには列1,列2,列4
    テーブルBに列3、列5と飛び飛びの列を指定しても問題はないのでしょうか?

    以上、よろしくお願いいたします。
記事No.94163 のレス /過去ログ163より / 関連記事表示
削除チェック/

■94171  Re[5]: excelファイル内のデータの切り分け・更新の方法について
□投稿者/ miyabi -(2020/03/23(Mon) 15:54:02)
    No94170 (miyabi さん) に返信
    > ■No94169 (kiku さん) に返信
    >
    >>上記のForNextで「インポートテスト」テーブルにインサートしていますが、
    >>このForNextを、もう1つのテーブルに対して、実行すれば良いと思いますが、
    >>何か問題になりますか?
    >>
    >>挿入位置は、NextとCommitの間が良いと思います。
    >>
    >>※C#ならコードを示せるんですが、VB.NETなので方向性のみコメントします。
    >
    > 返信ありがとうございます。
    >
    > For文をもう一つ作成し、検証してみることにします。
    >
    > 一つだけ疑問があるのですが
    > 同じFor文をもう一つ挿入する場合、例で書かせていただいたようにテーブルAには列1,列2,列4
    > テーブルBに列3、列5と飛び飛びの列を指定しても問題はないのでしょうか?
    >
    > 以上、よろしくお願いいたします。

    無事二つのテーブルへ追加処理を行うことが出来ました。
    解決済みとさせていただきます。ありがとうございました。
記事No.94163 のレス / END /過去ログ163より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -