C# 上传图片至数据库

C# 上传图片至数据库,第1张

亏得我一行行敲代码,你不会直接把代码贴出来,发什么截图

问题很简单,就是数据获取byte[]出错了

                using (SqlCommand com = new SqlCommand(strSql, con))

                {

                    SqlDataReader dr = comExecuteReader();

                    drRead();

                    var length = drGetBytes(1, 0, null, 0, intMaxValue);

                    byte[] byt = new byte[length];

                    drGetBytes(0, 0, byt, 0, intMaxValue);

                    using (MemoryStream memory = new MemoryStream(byt, 0, (int)length))

                    {

                        Image map = ImageFromStream(memory);

                        pictureBox1Image = map;

                        mapSave("d:\\textjpg");

                    }

                    drClose();

                }

你那个GetBytes的用法完全是错的,这个返回值是byte数组的长度,不是数据,数据时第三个参数

这里用了两个,第一个是为了获取长度好初始化数组,第二次才是获取数据

MSDN上的示例写的很清楚,只不过是SQLServer的,我这没有MySql,应该跟这一样的问题

>

还有很多细节问题如前面保存bmp格式后面读取保存的jpg格式、DialogResult不是用drToString() == "OK"而是dr==DialogResultOK来比较等多了去了,跟本问答无关就不细说了

我只有aspnet的,c#也可以使用,但是没测试过java那些的。将Excel里面的数据导入到数据库中的原理就是将Excel里面的数据存储到一个dataTable中,然后将数据一行一行添加到数据库的表里。给你部分代码,相信你能够如此好学,应该能看懂,有些变量你自己研究是什么,不然全部给你打出来了,你就只会copy了。

SqlConnection con = new SqlConnection(ConfigurationManagerAppSettings["aa"]ToString());

            conOpen();//数据库连接字符串

            DataTable dtXls = new DataTable();

            if (thisfudAddPostedFileFileNameToString()Trim() != "" && thisfudAddPostedFileFileName!=null)

            {

                string filePath = thisfudAddPostedFileFileNameToString()Trim();

                FileInfo fileTag = new FileInfo(fudAddPostedFileFileName);

                string extendedName = fileTagExtension;

                if (extendedNameToLower() != "xls" && extendedNameToLower() != "xlsx")

                {

                    ResponseWrite("<script>alert('请选择一个Excel文件!');</script>");

                    return;

                }

                else

                {

                    dtXls = ExcelToDataTable(filePath,extendedName);

                    if (dtXls==null||dtXlsRowsCount <= 0 || dtXlsColumns[0]ToString() == "")

                    {

                        ResponseWrite("<script>alert('请你确认上传的Excel中有资料!');</script>");

                        return;

                    }

                    else

                    {

                        if (dtXlsColumns[0]ToString() != "手机号码" || dtXlsColumns[1]ToString() != "状态")

                        {

                            ResponseWrite("<script>alert('请确定Excel资料的格式为[手机号码][状态]!');</script>");

                            return;

                        }

                        else

                        {

                            if (dtXlsRows[0][0]ToString() == "")

                            {

                                ResponseWrite("<script>alert('请确定Excel资料的格式为[手机号码][状态]!');</script>");

                                return;

                            }

                            else

                            {

                                string result = AddXlsData(dtXls, con);

                                string[] resultData = resultSplit('-');

                                string msg = "资料上传成功!共计" + resultData[0] + "条成功," + resultData[1] + "条失败!";

                                ResponseWrite("<script>alert('" + msg + "');</script>");

                                logwriteLogOpera(userid, "UnExistMobile_Magaspx", "UnExistMobile_Magaspxcs", "成功上传一批空号");//记录log

                                BindData();

                                return;

                            }

                        }

                    }

                }

                conClose();

//

#region ExcelToDataTable

    /// <summary>

    /// 读取xls文件

  /// Add by

    /// </summary>

    /// <param name="fileName"></param>

    /// <returns></returns>

    protected DataTable ExcelToDataTable(string fileName, string extendedName)

    {

        string strConn = stringEmpty;

        if (extendedNameToLower() == "xls")

        {

            strConn = "Provider=MicrosoftJetOLEDB40;Data Source=" + fileName + ";Extended Properties='Excel 80;HDR=Yes;IMEX=1';";

        }

        if (extendedNameToLower() == "xlsx")

        {

            strConn = "Provider=MicrosoftACEOLEDB120;Data Source=" + fileName + ";Extended Properties='Excel 120;HDR=YES'";

        }

        OleDbConnection conn = new OleDbConnection(strConn);

        connOpen();

        SystemDataDataTable schemaTable = connGetOleDbSchemaTable(SystemDataOleDbOleDbSchemaGuidTables, null);

        string tableName = schemaTableRows[0][2]ToString()Trim();

        string strExcel = "";

        OleDbDataAdapter myCommand = null;

        DataSet ds = null;

        strExcel = "Select      From   [" + tableName + "]";

        myCommand = new OleDbDataAdapter(strExcel, strConn);

        ds = new DataSet();

        myCommandFill(ds, tableName);

        if (ds != null)

        {

            SystemDataDataTable dt = dsTables[0];

            return dt;

        }

        else

        {

            return null;

        }

        connClose();

        dsDispose();

    }

    #endregion

string connectionString = stringEmpty;

string id = stringEmpty;

string newValue = stringEmpty;

SqlConnection connection = new SqlConnection(connectionString);

connectionOpen();

try

{

SqlDataAdapter adapter = new SqlDataAdapter();

adapterSelectCommand = new SqlCommand("SELECT ID, Name FROM Table01 WHERE ID = @ID", connection);

adapterSelectCommandParametersAdd("@ID", SqlDbTypeInt, 4, ID);

adapterSelectCommandParameters[0]Value = id;

adapterInsertCommand = new SqlCommand("INSERT Table01 (Name,Value) VALUES (@Name, @ID)", connection);

adapterInsertCommandParametersAdd(new SqlParameter("@Value", SqlDbTypeVarChar, 50, "Name"));

adapterInsertCommandParametersAdd(new SqlParameter("@ID", SqlDbTypeInt, 4, "ID"));

DataSet ds = new DataSet();

adapterFill(ds);

if(dsTables[0]RowsCount > 0)

{

dsTables[0]RowsAdd(new object[]{1, "第一行"});

dsTables[0]RowsAdd(new object[]{2, "第二行"});

dsTables[0]RowsAdd(new object[]{3, "第三行"});

dsTables[0]RowsAdd(new object[]{4, "第四行"});

dsTables[0]RowsAdd(new object[]{5, "第五行"});

dsTables[0]RowsAdd(new object[]{6, "第六行"});

adapterUpdate(ds);

}

}

finally

{

connectionClose();

}

写一个insert执行方法,把dataTable一条一条执行就行了啊

你的采纳是我前进的动力,还有不懂的地方,请继续“追问”。

如你还有别的问题,可另外向我求助;答题不易,互相理解,

建立一个DataTable并且为之添加数据方法:

使用ACCESS或其它任何款数据库应用软件可建立数据库、表。生成后可输入数据。

使用编程软件建立数据库、表,通过输入界面输入。

使用EXCEL电子表格输入相关数据,可导入数据表。

public static void UpdateAccess(DataTable temp)

{

    OleDbConnection con = new OleDbConnection("Provider=MicrosoftJetOLEDB40;Data source=DataMDB;Persist Security Info=False;Jet OLEDB:Database Password=");

    try

    {

        conOpen();

        OleDbDataAdapter Bada = new OleDbDataAdapter("SELECT   FROM TotalData where 1 =2", con);//建立一个DataAdapter对象

        OleDbCommandBuilder cb = new OleDbCommandBuilder(Bada);//这里的CommandBuilder对象一定不要忘了,一般就是写在DataAdapter定义的后面

        cbQuotePrefix = "[";

        cbQuoteSuffix = "]";

        DataSet ds = new DataSet();//建立DataSet对象

        BadaFill(ds, "demo");//填充DataSet

        foreach (DataRow tempRow in tempRows)

        {

            DataRow dr = dsTables["demo"]NewRow();

            drItemArray = tempRowItemArray;//行复制

            dsTables["demo"]RowsAdd(dr);

        }

        BadaUpdate(ds, "demo");//用DataAdapter的Update()方法进行数据库的更新

    }

    catch (Exception ex)

    {

        ConsoleWriteLine(exToString());

    }

    finally

    {

        conClose();

    }

}

以上就是关于C# 上传图片至数据库全部的内容,包括:C# 上传图片至数据库、mvc里如何上传excel然后将里面的数据导入到SQL数据库里、c# 如何向数据库插入整个table等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9516394.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存