如何使用C#中的Ajax和MVC将数据和图像插入SQL Server数据库?

时间:2017-08-26 03:53:26

标签: c# sql ajax asp.net-mvc

这是我的模特:

public int DiscountAvailable { get; set; }
public string Color { get; set; }
public string Size { get; set; }
public int Stock { get; set; }
public String Other1 { get; set; }
public string Other2 { get; set; }
public byte[] Image { get; set; }

这是我的控制器:

public JsonResult Add(Products Product)
{
    return Json(ProductDB.Add(Product), JsonRequestBehavior.AllowGet);
}

这是我的ADO连接数据库:

int i;

using (SqlConnection con = new SqlConnection(cs))
{
    con.Open();

    SqlCommand cmd = new SqlCommand();
    string query = "Insert into Products (CategoryId, SubCategoryId, DiscountAvailable, Stock, Color, Size, Other1, Other2) values(@CatId, @SubCatId, @Sto, @Col, @Siz, @Oth1, @Oth2)";
    cmd.CommandText = query;
    cmd.Connection = con;

    cmd.Parameters.AddWithValue("@CatId", Product.CategoryId);
    cmd.Parameters.AddWithValue("@SubCatId", Product.SubCategoryId);
    cmd.Parameters.AddWithValue("@SuppId", Product.SupplierId);
    cmd.Parameters.AddWithValue("@ProdN", Product.ProductName);
    cmd.Parameters.AddWithValue("@Pur", Product.PurchasePrice);
    cmd.Parameters.AddWithValue("@Ima", Product.Image);    

    i = cmd.ExecuteNonQuery();
}

return i;

这是我的ajax:

function Add() {
    var res = validate();

    if (res === false) {
        alert("nOT VALID");
        return false;
    }

    var file_data = $('#Image').prop('files')[0];
    var form_data = new FormData();

    form_data.append('file', file_data);

    console.log("Here");

    var ProductObj = {
        CategoryId: $('#CategoryId').val(),
        SubCategoryId: $('#SubCategoryId').val(),
        Stock: $('#Stock').val(),
        Color: $('#Color').val(),
        Size: $('#Size').val(),
        Other1: $('#Other1').val(),
        Other2: $('#Other2').val(),
        Image: file_data,
    };

    console.log(ProductObj);

    $.ajax({
        url: "/Products/Add",
        data: JSON.stringify(ProductObj),
        type: "POST",
        contentType: "application/json;charset=utf-8",
        dataType: "json",
        success: function (result) {
            loadData();
            console.log(result);
            $('#myModal').modal('hide');
        },
        error: function (errormessage) {
            alert(errormessage.responseText);
        }
    });
}

我创建了一个.cshtml,里面有输入字段,类型为' file'。 Ajax调用控制器和控制器调用DB,数据从该数据库插入数据库。在数据库内部,我已将image列定义为类型' varbinary(MAX)'。

我的问题是:我应该在控制器中做什么来处理图像?应该在模型中做出哪些改变?

0 个答案:

没有答案