C# FormView中的文件上载
我在数据库中添加图像URL时遇到问题。我正在ASP.Net的formview中使用fileupload方法。我有一个名为duyurular的表 它可以记录一个图像URL。顺便说一句,我使用的是SQL Server数据库。 我的问题是,;我正在进行更新、删除和在FormView中发布公告的过程。我可以使用FileUpload将这些图像上传到名为img的文件夹中。 但是,我也想在数据库中记录它。当在数据库中添加其他这些信息时,没有图像URL。 最后,我无法在数据库中添加图像URL 这是我的密码C# FormView中的文件上载,c#,.net,asp.net,file-upload,formview,C#,.net,Asp.net,File Upload,Formview,我在数据库中添加图像URL时遇到问题。我正在ASP.Net的formview中使用fileupload方法。我有一个名为duyurular的表 它可以记录一个图像URL。顺便说一句,我使用的是SQL Server数据库。 我的问题是,;我正在进行更新、删除和在FormView中发布公告的过程。我可以使用FileUpload将这些图像上传到名为img的文件夹中。 但是,我也想在数据库中记录它。当在数据库中添加其他这些信息时,没有图像URL。 最后,我无法在数据库中添加图像URL 这是我的密码 pu
public partial class panel_yoneticipaneli : System.Web.UI.Page
{
FileUpload dosya, dosya1;
//TextBox t1, t2, t3;
//Button btn;
SqlConnection con;
static string str = "Data Source=SERT;Initial Catalog=Mmakina;Integrated Security=True";
string yol = "";
protected void Page_Load(object sender, EventArgs e)
{
dosya = (FileUpload)FormView2.FindControl("FileUpload1");
dosya1 = (FileUpload)FormView2.FindControl("FileUpload2");
// btn = (Button)FormView2.FindControl("ResimKaydetButonu");
//t1 = (TextBox)FormView2.FindControl("DuyuruBaslikTextBox");
//t2 = (TextBox)FormView2.FindControl("DuyuruIcerikTextBox");
//t3 = (TextBox)FormView2.FindControl("DuyuruTarihiTextBox");
Label1.Visible = false;
if (Session["KullaniciID"]!=null)
{
con = new SqlConnection(str);
SqlCommand sorgu = new SqlCommand("SELECT * FROM Kullanici WHERE KullaniciAdi=@KullaniciAdi", con);
sorgu.Parameters.Add("@KullaniciAdi", SqlDbType.VarChar).Value = Session["KullaniciAdi"];
con.Open();
SqlDataReader oku = sorgu.ExecuteReader(CommandBehavior.CloseConnection);
Label1.Visible = true;
while (oku.Read())
{
Label1.Text = oku["KullaniciAdi"].ToString();
}
}
else {
Response.Redirect("error.aspx");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
Roles.DeleteCookie();
Session.Clear();
Response.Redirect("giris.aspx");
}
protected void btn_Click(object sender,EventArgs e) {
try
{
if (dosya.HasFile)
{
dosya.SaveAs(Server.MapPath("~/img/") + dosya.FileName);
System.Drawing.Image resim = System.Drawing.Image.FromFile(Server.MapPath("~/img/") + dosya.FileName);
yol = "img/" + dosya.FileName;
resim.Dispose();
DbUpload();
}
}
catch (Exception ex)
{
}
}
public void DbUpload() {
try {
SqlConnection sc = new SqlConnection("Data Source=SERT;Initial Catalog=Mmakina;Integrated Security=True");
SqlCommand scom = new SqlCommand("insert into Duyuru(DuyuruResmi) values(@DuyuruResmi)", sc);
scom.Parameters.AddWithValue("@DuyuruResmi", dosya.FileName);
scom.ExecuteNonQuery();
sc.Close();
}catch(Exception p){
p.Message.ToString();
}
}
protected void UpdateButton_Click(object sender, EventArgs e)
{
try
{
if (dosya.HasFile)
{
dosya.SaveAs(Server.MapPath("~/img/") + dosya.FileName);
yol = "img/" + dosya.FileName;
Response.Write("Fileupload çalışıyor...");
DbUpload();
}
}
catch (Exception ex)
{
}
}
提前感谢所有您可以分享的评论。您必须使用Formview ItemInserting事件,您可以在其中传递构建的URL
protected void frmAsset_ItemInserting(object sender, FormViewInsertEventArgs e)
{
if (dosya.HasFile)
{
dosya.SaveAs(Server.MapPath("~/img/") + dosya.FileName);
e.NewValues["URL"] = "img/" + dosya.FileName;
}
}
我建议您只上传图像名称,而不指定完整的URL,您可以将图像基本路径保存在web.config中,这样您就可以在拥有图像时更改路径,并且可以通过将图像名称连接到ConfigurationManager.AppSettings[ImagesBasePath]来控制此图像的视图所以这会更好。始终尝试发布相关代码并正确格式化。-首先,感谢您的关注。但是,编译器错误消息:CS1061:'System.Web.UI.WebControl.FormViewUpdateEventArgs'不包含'Values'的定义,并且没有接受'System.Web.UI.WebControl.FormViewUpdateEventArgs'类型的第一个参数的扩展方法'Values'或组件参考?Selo;抱歉,这在ItemUpdate事件中使用。只是错过了。这里应该是NewValues,我刚刚更新了我的答案。