ورود

View Full Version : اشکال در خواندنfile text و نوشتن ان در database



benyamin mirzai
شنبه 11 آبان 1387, 09:48 صبح
سلام من می خواهم فایلی از نوع text را بخواند مقادیر ان که با tab از هم جدا شده اند را از هم جدا کند و بعد مقادیر ان را در sql بنویسد ابتدا ان فایل را browse می کنم ان را باز کرده با split جدا کرده در ارایه می ریزم و بعد در sql ذخیره می کنم به صورت زیر




public partial class _Default : System.Web.UI.Page
{
SqlCommand myCom = new SqlCommand("insert into Personnel(Time,Door,Item,Events,Persons)values (@p1,@p2,@p3,@p4,@p5)", new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]));



protected void upbtn_Click(object sender, EventArgs e)
{

myCom.Connection.Open();

//..........................

string file = ExFileUp.PostedFile.FileName;

StreamReader FileReader;
FileReader = File.OpenText(file);
string fileread;


while (FileReader.EndOfStream==false)
{


fileread = FileReader.ReadLine();
string x;
x = fileread;
string[] xarray;
xarray = x.Split('\t');

for (int i = 0; i < 5; i++)
{
Label1.Text = xarray[i].ToString();

if (i==0)
myCom.Parameters.Add("@p1", xarray[0].ToString());
if(i==1)
myCom.Parameters.Add("@p2", xarray[1].ToString());
if(i==2)
myCom.Parameters.Add("@p3", xarray[2].ToString());
if(i==3)
myCom.Parameters.Add("@p4", xarray[3].ToString());
if(i==4)
myCom.Parameters.Add("@p5", xarray[4].ToString());

}

myCom.ExecuteNonQuery();

xarray.Clone();

}
myCom.Connection.Close();
}

ولی مشکل اینجاست که هنگام نوشتن در sql وقتی نوبت به خط دوم می رسد @p1 را نمی شناسد چون با زدن دکمه connenction.open می شود و وقتی برای بار دوم وارد while می شود دیگر p ها را نمی شناسد
به چه صورت بنویسم ؟

Chabok
شنبه 11 آبان 1387, 12:49 عصر
سلام.

این کدها کار نمیده برادر . شما اسم فایل رو از FileUpload گرفتین و میخواین مقدارش رو بخونید ؟
اینطوری نمیشه . شما باید محتوای فایل رو بخونید و به استریم بدین . چون فایل سمت کلاینت است و شما نمی توانید توسط File.OpenText مقدار آن را بخوانید . مگر اینکه محتوای آن رو در استریم بریزید.


کنترل فایل آپلود محتوای فایل رو بصورت IO.Stream توسط ویژگی FileContent میده .

موفق باشید . خدانگهدار