none
請問為何我打完資料執行之後會出現並未將物件參考設定為物件的執行個體。 RRS feed

  • 問題

  • using System;
    using System.Collections;
    using System.Collections.Specialized;
    using System.Configuration;
    using System.Data;
    using System.Data.SqlTypes;
    using System.Data.SqlClient;
    using System.Globalization;
    using System.IO;
    using System.Net.Sockets;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Threading;
    using System.Web;
    using System.Web.Caching;
    using System.Web.Security;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Web.Mail;
    
    public partial class 舉發聲請 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //日期
            for (Int32 i = DateTime.Now.Year - 100; i <= DateTime.Now.Year; i++)
            {
                this.ddlDateY.Items.Add(i.ToString());
    
            }
            for (Int32 i = 1; i <= 12; i++)
            {
                this.ddlDateM.Items.Add(i.ToString());
            }
            #region 天
            Int32 dayMax;
            String strD;
    
            strD = ddlDateD.Text;
            this.ddlDateD.Items.Clear();
            if (this.ddlDateM.Text == "1" || this.ddlDateM.Text == "3" || this.ddlDateM.Text == "5" || this.ddlDateM.Text == "7" || this.ddlDateM.Text == "8" || this.ddlDateM.Text == "10" || this.ddlDateM.Text == "12")
            {
                dayMax = 31;
            }
            else if (this.ddlDateM.Text == "2")
            {
                if ((Int32.Parse(this.ddlDateY.Text) % 4) == 0)
                {
                    dayMax = 29;
                }
                else
                {
                    dayMax = 28;
                }
            }
            else
            {
                dayMax = 30;
            }
    
            for (Int32 i = 1; i <= dayMax; i++)
            {
                this.ddlDateD.Items.Add(i.ToString());
            }
    
            ddlDateD.Text = strD;
    
            #endregion
        }
    
    
        //上傳
        string UploadedMsg = "";
    
        protected void Upload(FileUpload myFileUpload)
        {
            bool fileAllow = false;
            string[] allowExtensions = { ".jpg", ".gif", ".png" };
            string path = HttpContext.Current.Request.MapPath("~/UploadImage/");
            if (myFileUpload.HasFile)
            {
                string fileExtension =
                    System.IO.Path.GetExtension(myFileUpload.FileName).ToLower();
                for (int i = 0; i < allowExtensions.Length; i++)
                {
                    if (fileExtension == allowExtensions[i])
                    {
                        fileAllow = true;
                    }
                }
                if (fileAllow)
                {
                    try
                    {
                        myFileUpload.SaveAs(path + myFileUpload.FileName);
                        UploadedMsg += "<li>" + myFileUpload.PostedFile.FileName + "</li>";
                        //=================== 寫入資料庫 ===================
    
                        //將伺服器檔名與照片名稱指定給 SqlDataSource1 Insert 陳述式的參數
                        SqlDataSource1.InsertParameters["Report_Image"].DefaultValue = myFileUpload.FileName;
                        //SqlDataSource1.InsertParameters["照片名稱"].DefaultValue = Uploading.FileName;
    
                        //將伺服器檔名與照片名稱寫入資料庫
                        SqlDataSource1.Insert();
    
                    }
                    catch (Exception ex)
                    {
                        Label1.Text += ex.Message;
                    }
                }
                else
                {
                    UploadedMsg += "<li>不允許上傳" + myFileUpload.PostedFile.FileName + "</li>";
                }
    
            }
        }
    
        protected bool hasFile()
        {
            bool status = false;
            status = FileUpload1.HasFile;
            return status;
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            if (FileUpload1.HasFile)
            {
    
                try
                {
                    Label1.Text = "";
                    {
                        FileUpload1.SaveAs(Server.MapPath("UploadImage") + "\\" + FileUpload1.FileName);
                    }
    
                }
                catch (Exception ex)
                {
                    Label1.Text = "錯誤" + ex.Message;
                }
    
            }
            else
            {
                Label1.Text = "為選取檔案!";
            }
    
            ConnectionStringSettings newscts = ConfigurationManager.ConnectionStrings["NewDatabase"];
            string newscnn = newscts.ToString();
            SqlConnection sqlnewscnn;
            SqlCommand sqlnewscmd;
            string newscmd;
            string fileName = FileUpload1.FileName.ToString();
    
            if (Report_Name.Text != null)
            {
    
                newscmd = "INSERT INTO Report(Report_No,Report_Name,Report_Place,Report_Area,Report_Status,Report_Time,Report_Image,Report_Situation) VALUES ('" + Report_Name.Text + "','" + DropDownList1.Text + "','" + DropDownList2.Text + "','" + RadioButtonList1.Text + "','" + ddlDateY.Text + "','" + fileName + "','" + TextBox2.Text + "')";
                sqlnewscnn = new SqlConnection(newscnn);
                sqlnewscmd = new SqlCommand(newscmd, sqlnewscnn);
                sqlnewscnn.Open();
                sqlnewscmd.ExecuteNonQuery();
                sqlnewscnn.Close();
                Response.Redirect("首頁.aspx");
            }
            else
            {
                Lbl_error.Text = "資料請填寫完整";
            }
        }
    }
    
    
    

    這上面是我的程式碼~

    請各位大大幫解惑....

    小弟目前是認為資料庫的自動編碼也要一起寫入才不會錯誤

    2013年10月24日 下午 06:55

解答

  • 請先解決 SQL Injection 問題。

    另外,應記得在 Page_Load 處理 PostBack,除非你的網頁完全沒有 PostBack。


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2013年10月24日 下午 11:46
    版主

所有回覆

  • 請先解決 SQL Injection 問題。

    另外,應記得在 Page_Load 處理 PostBack,除非你的網頁完全沒有 PostBack。


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2013年10月24日 下午 11:46
    版主
  • 我網頁上有用PostBack

    小弟不才  SQL Injection 問題 是什麼的問題!?

    小弟不懂><

    懇請大大解惑

    2013年10月25日 上午 09:05
  • 把那個名詞貼到 Google 的搜尋文字方塊,然後按搜尋,有這麼難嗎...

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2013年10月25日 下午 02:26
    版主
  • 寫 ASP.NET 必備

    91的ASP.NET由淺入深系列


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2013年10月25日 下午 03:34
    版主