При вставке файла doc в двоичном виде в базе данных. Я получаю строку ошибки или двоичных данных будет усечен ..Строковые или двоичные данные будут усечены asp.net
У меня есть веб-формы, как этот
<table>
<tr>
<td>
Select File
</td>
<td>
<asp:FileUpload ID="FileUpload1" runat="server" ToolTip="Select Only Word File" />
</td>
<td>
<asp:Button ID="Button1" runat="server" Text="Upload" onclick="Button1_Click" />
</td>
<td>
<asp:Button ID="Button2" runat="server" Text="View Files"
onclick="Button2_Click" />
</td>
</tr>
код позади При щелчке мышью по загрузке
protected void Button1_Click(object sender, EventArgs e)
{
Label2.Visible = true;
string filePath = FileUpload1.PostedFile.FileName;
string filename1 = Path.GetFileName(filePath);
string ext = Path.GetExtension(filename1);
string type = String.Empty;
if (!FileUpload1.HasFile)
{
Label2.Text = "Please Select File";
}
else
if (FileUpload1.HasFile)
{
try
{
// Added by vithal wadje for Csharp-Corner contribution
switch (ext)
{
case ".doc":
type = "application/word";
break;
case ".docx":
type = "application/word";
break;
}
if (type != String.Empty)
{
connection();
Stream fs = FileUpload1.PostedFile.InputStream;
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((Int32)fs.Length);
query = "insert into test(data)" + " values (@Data)";
com = new SqlCommand(query, con);
com.Parameters.Add("@Data", SqlDbType.VarBinary).Value = bytes;
com.ExecuteNonQuery();
Label2.ForeColor = System.Drawing.Color.Green;
Label2.Text = "Word File Uploaded successfully";
}
else
{
Label2.ForeColor = System.Drawing.Color.Red;
Label2.Text = "Select Only word Files";
}
}
catch (Exception ex)
{
Label2.Text = "Error: " + ex.Message.ToString();
}
}
}
В SQL Server у меня есть имя теста тестовой таблицы базы данных
data varbinary(Max)
файла, который я отправляю есть данные byte[9886].
опции не присутствует в SQL-сервер для Binary (Макс), тогда как VARBINARY (Max) есть .. как Кани исправить это я уже назначая 'двоичным (8000)', который является не более value ... –
use VARBINARY (max) –
@Peter Henell использовал его, но не повезло, что такое же исключение подходит. –