-
آپدیت کردن دیتابیس
من یک برنامه(application با csharp) دارم که اطلاعات وارد اون میشه(داخل دیتابیسش)
حالا یه سایت دارم با همون دیتابیس میخام دیتا بیس سایتمو با استفاده از دیتابیس برنامه(که تغییر کرده)آپدیت کنم.
لطفا کمکم کنید هم حالت آفلاین و هم آنلاین(یعنی همون موقع که دیتابیس برنامم داره تغییر میکنه واسه سایتمم آپدیت بشه )
-
من اینجا یه پست زدم چی شد ؟
شما در اصل می خواید بانکتونو توی Host تون اپلود کنید
واسه اپلود هم یه کلاس دارم دم دستون که راحت می تونی از روش یاد بگیری ( کاری علی ه (HamisheBahar))
کد:
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
namespace Dabelna_Manage
{
class Ftp
{
FtpWebRequest FTP;
string _address;
public string Address
{
get { return _address; }
set { _address = value; }
}
public Ftp(string Address, string username, string password)
{
_address = Address;
}
public void CreateDirectory(string DirName)
{
Login(Address + "/" + DirName);
FTP.Method = WebRequestMethods.Ftp.MakeDirectory;
((FtpWebResponse)FTP.GetResponse()).Close();
}
public void RemoveDirectory(string DirName)
{
Login(Address + "/" + DirName);
FTP.Method = WebRequestMethods.Ftp.RemoveDirectory;
((FtpWebResponse)FTP.GetResponse()).Close();
}
public void CreateFile(string FileName)
{
Login(Address + "/" + FileName);
FTP.Method = WebRequestMethods.Ftp.AppendFile;
((FtpWebResponse)FTP.GetResponse()).Close();
}
public void UploadFile(string FileName, Stream stream)
{
Login(Address + "/" + FileName);
FTP.Method = WebRequestMethods.Ftp.UploadFile;
Stream streamWriter = FTP.GetRequestStream();
byte[] Read = new byte[stream.Length];
stream.Read(Read, 0, Convert.ToInt32(stream.Length));
streamWriter.Write(Read, 0, Read.Length);
stream.Dispose();
streamWriter.Dispose();
}
public void UploadFileString(string FileName, string stream)
{
Login(Address + "/" + FileName);
FTP.Method = WebRequestMethods.Ftp.UploadFile;
Stream streamWriter = FTP.GetRequestStream();
byte[] Read = new byte[stream.Length];
for (int i = 0; i < stream.Length; i++)
{
Read[i] = Convert.ToByte(stream[i]);
}
streamWriter.Write(Read, 0, Read.Length);
streamWriter.Dispose();
}
public Stream DownloadFile(string FileName)
{
Login(Address + "/" + FileName);
FTP.Method = WebRequestMethods.Ftp.DownloadFile;
return FTP.GetResponse().GetResponseStream();
}
public string[] ListFiles(string FileName)
{
Login(Address + "/" + FileName);
FTP.Method = WebRequestMethods.Ftp.ListDirectory;
WebResponse myres = FTP.GetResponse();
Stream stream = myres.GetResponseStream();
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
List<string> RET = new List<string>();
while (!reader.EndOfStream)
{
RET.Add(reader.ReadLine());
}
myres.Close();
stream.Dispose();
return RET.ToArray();
}
public bool FileOrDirectoryExist(string FileName)
{
try
{
Login(Address + "/" + FileName);
FTP.Method = WebRequestMethods.Ftp.ListDirectory;
WebResponse myres = FTP.GetResponse();
Stream stream = myres.GetResponseStream();
stream.ReadByte();
myres.Close();
stream.Dispose();
return true;
}
catch (Exception)
{
// Debug here?
}
return false;
}
public string DownloadFileString(string FileName)
{
Login(Address + "/" + FileName);
FTP.Method = WebRequestMethods.Ftp.DownloadFile;
WebResponse myres = FTP.GetResponse();
Stream stream = myres.GetResponseStream();
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
string RET = reader.ReadToEnd();
myres.Close();
stream.Dispose();
return RET;
}
public void RemoveFile(string FileName)
{
Login(Address + "/" + FileName);
FTP.Method = WebRequestMethods.Ftp.DeleteFile;
((FtpWebResponse)FTP.GetResponse()).Close();
}
public void Login(string Address)
{
FTP = (FtpWebRequest)FtpWebRequest.Create(Address);
FTP.UseBinary = true;
FTP.Credentials = new NetworkCredential("lion@prohosting.ir", "123456");
}
}
}
هر وقت تو بانک تغییرات دادی اپلودش کن جای بانکی که توی هاستته
در ضمن باید Ftp باشه ه ها