私はレビューを含む.CSVファイルを持っており、FileUploadコントロールからプログラムを使ってSQLデータベースにコンテンツを転送します。私が持っている問題は、私のコントロールが動作しているということですが、私のデータベースにデータが入っていないのが見えます。ここに私のコードは次のとおりです。誰もが私が間違っているのかのアイデアを持っているか、できればFileUploadを使用して.CSVからSQLにデータをインポートしますか?
マークアップ
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Button ID="Button1" runat="server"onclick="Button1_Click" Text="Button" />
<asp:Label ID="Label1" runat="server"></asp:Label>
Code Behind
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Data.SqlTypes;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string fileExt = System.IO.Path.GetExtension(FileUpload1.FileName);
if (fileExt == ".csv")
{
OleDbConnection oconn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + FileUpload1 + "; Extended Properties=Excel 8.0");
try
{
OleDbCommand ocmd = new OleDbCommand("SELECT * FROM [AudioPR$]", oconn);
oconn.Open();
OleDbDataReader odr = ocmd.ExecuteReader();
string Device = "";
string Source = "";
string Reviewer = "";
string Datetime = "";
string Links = "";
string Content = "";
string Subject = "";
while (odr.Read())
{
Device = valid(odr, 0);
Source = valid(odr, 1);
Reviewer = valid(odr, 2);
Datetime = valid(odr, 3);
Links = valid(odr, 4);
Content = valid(odr, 5);
Subject = valid(odr, 6);
InsertDataIntoSql(Device, Source, Reviewer, Datetime, Links, Content, Subject);
}
oconn.Close();
}
catch (Exception ee)
{
Label1.Text = ee.Message;
Label1.ForeColor = System.Drawing.Color.Red;
}
finally
{
Label1.Text = "Data Inserted Successfully";
Label1.ForeColor = System.Drawing.Color.Green;
}
}
else
{
Label1.Text = "Only .csv files allowed!";
}
}
else
{
Label1.Text = "You have not specified a file!";
}
}
protected string valid(OleDbDataReader myreader, int stval)
{
object val = myreader[stval];
if (val != DBNull.Value)
{
return val.ToString();
}
else
{
return Convert.ToString(0);
}
}
public void InsertDataIntoSql(string Device, string Source, string Reviewer, string Datetime, string Links, string Content, string Subject)
{
SqlConnection conn = new SqlConnection("Data Source=CI0000000879107\\BENSON; Initial Catalog=PRClips Mail;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "INSERT INTO AudioPR(Device, Source, Reviewer, Datetime, Links, Content, Subject) VALUES(@Device, @Source, @Reviewer, @Datetime, @Links, @Content, @Subject)";
cmd.Parameters.Add("@Device", System.Data.SqlDbType.NVarChar).Value = Device;
cmd.Parameters.Add("@Source", System.Data.SqlDbType.NVarChar).Value = Source;
cmd.Parameters.Add("@Reviewer", System.Data.SqlDbType.NVarChar).Value = Reviewer;
cmd.Parameters.Add("@Datetime", System.Data.SqlDbType.Date).Value = Datetime;
cmd.Parameters.Add("@Links", System.Data.SqlDbType.NVarChar).Value = Links;
cmd.Parameters.Add("@Content", System.Data.SqlDbType.NVarChar).Value = Content;
cmd.Parameters.Add("@Subject", System.Data.SqlDbType.NVarChar).Value = Subject;
cmd.CommandType = System.Data.CommandType.Text;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
私はちょうどのFileUploadから内容を読み込むことができたときに、接続を持つことはちょっと無意味であることを認識したが適切な方向に導かれ、大いに感謝されます。お時間
あなたがSOのコミュニティがのためにあなたのデバッグを行いたい表示されます君は。より良い質問は、問題のある領域を見つけ、問題を再現する小さくて簡潔なプログラムを提供することです。 –
あなたの権利、私は十分にこれを十分に見たとは思わない – cbenson