Click here to Skip to main content
15,890,897 members
Please Sign up or sign in to vote.
4.20/5 (2 votes)
See more:
i am using datareader at page load to read and store database values in variables, my table includes both nvarchar and image type columns. At page load my 5 images value in database is not read by reader but others are perfectly read.

C#
    Byte[] img1 = null;
    Byte[] img2 = null;
    Byte[] img3 = null;
    Byte[] img4 = null;
    Byte[] img5 = null;
    SqlConnection con = new SqlConnection("Data Source=RAJ-PC\\SQLEXPRESS;Initial Catalog=Finder;Integrated Security=True");
protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            loadad();
        }
    }

protected void loadad()
    {
        SqlCommand cmd = new SqlCommand("sps_addetails", con);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@ad_id", ad_id);
        cmd.Parameters.AddWithValue("@useremail", ses);
        con.Open();
        SqlDataReader reader = cmd.ExecuteReader();
        while (reader.Read())
        {
            rd_iam.SelectedValue = reader["iam"].ToString();
            dd_category.SelectedValue = reader["category"].ToString();
            c = Convert.ToInt16(reader["category"].ToString());
            dd_subcategory.SelectedValue = reader["subcategory"].ToString();
            txt_title.Text = reader["title"].ToString();
            txt_description.Text = reader["description"].ToString();
            txt_pername.Text = reader["contactname"].ToString();
            txt_mobile1.Text = reader["mobile1"].ToString();
            txt_mobile2.Text = reader["mobile2"].ToString();
            txt_landline1.Text = reader["landline1"].ToString();
            txt_landline2.Text = reader["landline2"].ToString();
            txt_email1.Text = reader["email1"].ToString();
            txt_email2.Text = reader["email2"].ToString();
            txt_website.Text = reader["website"].ToString();
            dd_country.Text = reader["country"].ToString();
            d = Convert.ToInt16(reader["country"].ToString());
            dd_state.Text = reader["state"].ToString();
            txt_pincode.Text = reader["pincode"].ToString();
            txt_address.Text = reader["address"].ToString();
            txt_lat.Text = reader["latitude"].ToString();
            txt_lon.Text = reader["longitude"].ToString();

            img1 = (byte[])reader["image1"];
            img2 = (byte[])reader["image2"];
            img3 = (byte[])reader["image3"];
            img4 = (byte[])reader["image4"];
            img5 = (byte[])reader["image5"];

        }
        con.Close();
        
    }
Posted
Comments
ZurdoDev 21-Apr-14 20:20pm    
What exactly is the issue? Does reader["image1"] have anything? Where are you using img1?
Raj Negi 22-Apr-14 1:46am    
yes i have data in column image1 but it is not read by reader. I want to use this img1 to send this fetching data back to database.
Herman<T>.Instance 22-Apr-14 3:09am    
Stream !

See MSDN
 
Share this answer
 
Comments
Raj Negi 25-Apr-14 16:43pm    
thanks, it helps me a lot. Retreiving Image value is different from other datatypes.
Your code is perfect

It's in varbinary format or not?
Have you entered correct byte arrary data ?

See following articles which will help you


Storing and Retrieving Images from SQL Server using Microsoft .NET[^]
Convert-Image-to-Byte-Array-and-Byte-Array-to-Image-in-csharp.html[^]
 
Share this answer
 
Comments
Raj Negi 23-Apr-14 7:48am    
here is my data in column image1:
0xFFD8FFE000104A46494600010101004800480000FFDB0043000302020302020303030304030304050805050404050A070706080C0A0C0C0B0A0B0B0D0E12100D0E110E0B0B1016101113141515150C0F171816141812141514FFDB00430103040405040509050509140D0B0D1414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414FFC0001108007C00E603011100021101031101FFC4001D000002020301010100000000000000000004050306020708010009FFC400431000020102040305060306050303050000010203041100051221063141071322516108143271819123A1B1094252C1D1F015336282E12443F11672A244538392C2FFC400190100030101010000000000000000000000000102030405FFC4002D1100020202020102050401050000000000000102112131031241516104132232811471A1F005152352C1D1FFDA000C03010002110311003F00E08CA69F30CD26993DDF53477722796DB5EE4AEAB7EB6DF1CCD26F062D27A0EA2ADCC29A591104AED33774B0AEA1663D6FCAFBAFCF6BF4BE4E29E0CFA584D34353254AC9534A9531BC96D483BC37EBE2527A5F75BF23855D5835D74C6D499B2513D2D3E5A9592BBEAF8C076752341501948B0048DF6B75C4D36FB13D5B762BCD738AB91C34D31AA692464D63C2E8CB6046EFB91B122DD01BF5C5F4F52FA50BE8A9592880ABA9759A66616275580B6CC7A036E877DB09BCFD226F380BA7CB64B2B52C9DC6A662082CB761B9D2473076FC813CF0AF16C14BFE479066151EE462762D2B789D58E9716B91706C3991B6FCBA6D86E91759B433CBAAC57434C6A9A2825666FC429A749B0F0DC7306E36B8F3F3254AF4899DAC04A04844D1D24ED287BF791303A5803B15245F9836D8EE711645DEC4F4F99991440AF534B3C00ADCEE39DAE4F4DFAFAE2DC1B76538BD8DE9F3F68A078EA1A49C46A49EF355D7E5C86D727E5F6C66E266E3E83AA67F798D4BCD23D3E80FA97C0A1BD0F3DFE9CF18B95618BB5E191D619692277A7324902D8581B907E5F3C69069B2F8FEEA4257CE331A7A947961EFE0703BC0A6CCA7D08F2C76F547A56C7B439CCD2D1878A66445FDD0E2E4FAEDB72C64E098BA465B099B88A78E366528580BEB42493F218C3F4F06733F86819C1C4554E8AEEF2488D6E51F2F2DFEBCB19BE2499CB3E351748FAAB319D194C88A6F7D4118023C5F4B8FEB8CEBDCC52F721694EECB2B2C732D8C6CFE11CADB1FA62D7B8C2665198A2C52C7AC2784890DF6F2079F2BE176945EC3B497930F7786B1923AA88AAA6A08AC6F7171CB7E57C37C9C9EA57CC97A9ED6E4AB53589531D4F77DD0D3DC142A3A8E7FCB1A47E21C5FD48A8F357DC07439657D355999D0E8690B6B53A811B81B8BE3B23CB07A674AE48BF236CBA92AE68A7318606491548240B81B0E7CFAE35524C6A57A1653CED57C5534AF709497551F2D85BEB738A7965167CAA764A6123121E563235CF217C1E09B1DC7552181BC44DD49B79FA61DAA10F9B3A8A923D32B786F6058DC7F7BE1378B05939C2792A686BE4AFA1969F51882993BABAB3070C493B5AE54DC5BA5B7E78E48CECCE12F01951C4B512E574EC28E9DE486264AB7259A34F840D243DEF65423ADC73DED8AB6B0576CD0A3FF005B55013CB471470A213A892C351F1137016E092CE45BF8B7BDAF8D3B5D266977B09E1AE3ACE84AB524C534AF16985853970483F19DECA469F2F5B5C0C29B55444E960C21CF229853AE602686AE966794D4A4634335D7C2CA7E2B003E7CBD719AC2FA49D2A4419F66F5968EA12269126653A54DD59D878491CC86BDEC7D79E26114C884537418D93D4FBB2CF112EFF04D0544415E3B1B7C7CAC6E05B9F3DB6BE336E29D326D2C3165657C34F232D4AC6E48B06E4436C0863CBF4BDEF718D6313A38F6095D5AD54D0B4F277A4377837008FF004AF31B7CBAFDAD2DD1587614335927A68FDCE26EF1A40B2DECD7373604ED6B8B7CF13D52C4999F54B634A8CBD73140D3ABA564765549187E2BDC0D277241D8587F62632AC111951E535753D5CAB04C15128E26BA4A093A6C0786DD77F4DB12D4AAC4D3AB25A5CFE5A0AB712A2CFA814431B10540B0DC0D88B74B625C6D09C6D60B5C79A419842D1B3ACE241A55F736B0E5CB6B632A71766694A2EC5F7469ECDE11CF626D8EC8BB47AB0D134D40446C6360808B5C9DCE2ACDA8024CBE78D8B44E23B296DAD6E876BEDE9F5C4C9A319C944993328A9A36EECBC4BA776914D872BDEFB13D6D6C733CE4F3677276CC22CED678A2949328906D74D2586C2E08E6058DFD4625C590E21868E32659299D9FBCE625E66E0586E37C4296689ED582075AB8DC346EAAE2E8432851E7B0BEFD0DFCB9635B4F2354CC9A5A8AB960D6E9154235B637D7602DCF90E5BE26902A5A0A199334A9E0EF189B348C2FA48BDB71CB074F085D42A9F36713318DD63946CE8012080773BFD711D15E45D5165A2CF20A98410E5081705C787E47C8FD719F4927827A4BC1E55AD0D121531C4B2C96B92A537B5ED71E9E786B93922E9957C90D93E5469EB649A95206478C067726E072B5BF2FBE3A172CD2EDE0D13975EDE03E6A6990C4B0409220B6A63281D7A0C5AF898BDB1AE642AE2A8B33A8961A6A282778D6EE5D6227CADCBFBDB1AAE584B366D0945E5B35452F7E90C6637814464B44B20D32000DD88BF21BFAF5C62E8C5D591192B2485A196164A35000D2A7C4BAB55ECBCB7DF718B582FDC1E3CAE9AB63964488
[no name] 23-Apr-14 8:24am    
is there any exception ?
Raj Negi 23-Apr-14 9:33am    
no exception no error, it just retreive null value.
Raj Negi 23-Apr-14 9:36am    
http://stackoverflow.com/questions/23206011/datareader-not-reading-image-value
Detail Question, may be it will help you to understand my problem.
ASP.NET
<img runat="server" id="image1" alt="" src="" height="100" width="100" />


C#
protected void LoadImage1()
    {
        SqlCommand cmd = new SqlCommand("sps_getimage", con);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@flag", 1);
        cmd.Parameters.AddWithValue("@ad_id", ad_id);
        con.Open();
        SqlDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.SequentialAccess);
        if (reader.HasRows)
        {
            reader.Read();
            MemoryStream memory = new MemoryStream();
            long startIndex = 0;
            const int ChunkSize = 256;
            while (true)
            {
                byte[] buffer = new byte[ChunkSize];
                long retrievedBytes = reader.GetBytes(0, startIndex, buffer, 0, ChunkSize);
                memory.Write(buffer, 0, (int)retrievedBytes);
                startIndex += retrievedBytes;
                if (retrievedBytes != ChunkSize)
                    break;
            }

            byte[] data = memory.ToArray();
            img1 = data;
            memory.Dispose();
            image1.Src = "data:image/png;base64," + Convert.ToBase64String(data);
        }
        con.Close();
    }
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900