نمایش نتایج 1 تا 9 از 9

نام تاپیک: خطا در هنگام ذخیره متن خاص در دیتابیس sql توسط richtextbox

  1. #1

    Question خطا در هنگام ذخیره متن خاص (دارای کتیشن (") یا(')) در دیتابیس sql توسط richtextbox

    سلام
    من یه فرم طراحی کردم با دیتابیس sql و می خوام متنی با richtexbox ذخیره کنم داخل دیتابیس
    نوع فیلد هم ntext هست
    حالا من اگه متنی معمولی وارد کنم خب ذخیره می شه ولی اگه متنی دارای تگ و علامت باشه (نوشته هایی که دارای دابل کتیشن یا سینگل کتیشن هست)
    خطا میده مثلا متن زیر رو خطا میده
    if (tb[i].Text.Trim() == "")
    {
    MessageBox.Show("Don't keep field empty");
    tb[i].Focus();
    return false;
    }

    کد بالا رو می خوام توسط richtextbox داخل دیتابیس که نوع فیلد هم ntext هست می خوام ذخیره کنم ولی اررور میده
    در کل میخوام هر نوع نوشته ای رو در دیتابیس ذخیره کنم
    لطف کنید کمک کنید
    باید چه نوع یا چه کار کنم که ذخیره بشه
    باتشکر
    آخرین ویرایش به وسیله hossein_1200 : شنبه 25 دی 1389 در 19:27 عصر

  2. #2

    نقل قول: خطا در هنگام ذخیره متن خاص در دیتابیس sql توسط richtextbox

    1 . اگر از Embeded SQL استفاده می نماييد ، بايد در استفاده از کاراکترهای " و ' دقت کنيد . ضمنا اين موضوع ربطی به نوع فيلد ندارد .
    2 . بنا به توصيه مايکروسافت به جای Ntext از nvarchar(max) استفاده نماييد .

  3. #3

    نقل قول: خطا در هنگام ذخیره متن خاص در دیتابیس sql توسط richtextbox

    نقل قول نوشته شده توسط misaghi مشاهده تاپیک
    1 . اگر از Embeded SQL استفاده می نماييد ، بايد در استفاده از کاراکترهای " و ' دقت کنيد . ضمنا اين موضوع ربطی به نوع فيلد ندارد .
    2 . بنا به توصيه مايکروسافت به جای Ntext از nvarchar(max) استفاده نماييد .
    من از نسخه SQLEXPRESS 2005 که با خود سی شارپ اتچ کردم استفاده می کنم و در کل من این برنامه را برای ذخیره ترفندها از اینترنت که قابلیت جستجو داشته باشه استفاده می کنم
    در ضمن اگر متنی دارای 20 صفحه باشه ایا nvarcharmax ساپورت می کنه در ضمن این متن که در اول نوشتم با nvarcharmax هم جواب نداد کلا باید چه کار کنم که با کنترل richtextbox یه متن اتنخاب شده از صفحات اینترنت که شامل تگ و انواع علامت ها است در دیتابیس ذخیره کنم و به این علامت ها گیر نده
    ممنون می شم جواب بدید .


  4. #4

    نقل قول: خطا در هنگام ذخیره متن خاص در دیتابیس sql توسط richtextbox

    لطفا دستوراتي كه براي ذخيره كردن در برنامه مينويسيد رو اينجا بذاريد تا بهتر بشه كمكتون كرد (هم دستورات SQL هم دستوراتي كه سمت برنامه نوشتيد)

  5. #5

    نقل قول: خطا در هنگام ذخیره متن خاص در دیتابیس sql توسط richtextbox

    نقل قول نوشته شده توسط Reza_Yarahmadi مشاهده تاپیک
    لطفا دستوراتي كه براي ذخيره كردن در برنامه مينويسيد رو اينجا بذاريد تا بهتر بشه كمكتون كرد (هم دستورات SQL هم دستوراتي كه سمت برنامه نوشتيد)
    فهمیدم مشکل از کجا است ولی نمی دونم چه جوری حلش کنم مشکل در نوشتن کوری است من اگه این متن MessageBox.Show("Don't keep field empty"); مستقیم داخل جدول بریزم قبول می کنه اما با کوری، به سینتکس ایراد می گیره . این کوری که نوشتم


    INSERT INTO Table1
    (SUBJECT, matn, TAG)
    VALUES (' tarfand 1 ', ' MessageBox.Show("Don't keep field empty");', ' k;fs')
    اگر این کوری اجرا بشه به مقدار دومی گیر میده که اررورش اینه incorrect syntax near 't'
    خب من چه جور کوری بنویسم که این نوع متن ها را بتونم در دیتابیس ذخیره کنم
    نوع فیلد هم ntext هست با nvarchar(max) هم تست کردم همین خطا میده
    لطف کنید کمک کنید

  6. #6

    نقل قول: خطا در هنگام ذخیره متن خاص در دیتابیس sql توسط richtextbox

    نميدونم از چه زباني استفاده ميكنيد. درصورتي كه از Net. استفاده ميكنيد بايد بصورت زير عمل كنيد (فيلد مورد نظر رو (nvarchar(max در نظر بگيريد)
    SqlCommand cmd = new SqlCommand("Insert Into TableName(SUBJECT, matn, TAG) Value(@SUBJECT, @matn, @TAG)", conn);
    cmd.Parameters.AddWithValue("@SUBJECT", "tarfand 1");
    cmd.Parameters.AddWithValue("@matn", "MessageBox.Show(\"Don't keep field empty\");");
    cmd.Parameters.AddWithValue("@TAG", "k;fs");
    conn.Open();
    cmd.ExecuteNonQuery();
    ...

  7. #7

    نقل قول: خطا در هنگام ذخیره متن خاص در دیتابیس sql توسط richtextbox

    نقل قول نوشته شده توسط Reza_Yarahmadi مشاهده تاپیک
    نميدونم از چه زباني استفاده ميكنيد. درصورتي كه از Net. استفاده ميكنيد بايد بصورت زير عمل كنيد (فيلد مورد نظر رو (nvarchar(max در نظر بگيريد)
    SqlCommand cmd = new SqlCommand("Insert Into TableName(SUBJECT, matn, TAG) Value(@SUBJECT, @matn, @TAG)", conn);
    cmd.Parameters.AddWithValue("@SUBJECT", "tarfand 1");
    cmd.Parameters.AddWithValue("@matn", "MessageBox.Show(\"Don't keep field empty\");");
    cmd.Parameters.AddWithValue("@TAG", "k;fs");
    conn.Open();
    cmd.ExecuteNonQuery();
    ...
    خب این راه حل ("@matn", "MessageBox.Show(\"Don't keep field empty\");"); که علامت اسلش قبل از دابل کتیشن بزاری جواب داد ولی فکر کن من یه متنی دارای هزار تا دابل کتیشن است اون با richtextbox می خواهم ذخیره کنم اون وقت چی
    یه سوال دیگه اینکه تو خود sql server چه جور کوری بنویسم که هم چین متنی ذخیره بشه چون با روش شما داخل sql server جواب نمی ده فقط در سی شارپ دات نت جواب داد
    ممنون میشم یک روشی بگید که متنی با نوشته های زیاد و دارای سینتکس های مختلف بشه تو دیتابیس ذخیره کرد

  8. #8

    نقل قول: خطا در هنگام ذخیره متن خاص در دیتابیس sql توسط richtextbox

    خوب خودم روش کوری در sql server پیدا کردم

    SET QUOTED_IDENTIFIER OFF;

    --Literal strings can be in single or double quotation marks.
    INSERT INTO dbo.Test VALUES (1, "'Text in single quotes'");
    INSERT INTO dbo.Test VALUES (2, '''Text in single quotes''');
    INSERT INTO dbo.Test VALUES (3, 'Text with 2 '''' single quotes');
    INSERT INTO dbo.Test VALUES (4, '"Text in double quotes"');
    INSERT INTO dbo.Test VALUES (5, """Text in double quotes""");
    INSERT INTO dbo.Test VALUES (6, "Text with 2 """" double quotes");

    SET QUOTED_IDENTIFIER ON

    -- Strings inside double quotation marks are now treated
    -- as object names, so they cannot be used for literals.
    INSERT INTO dbo."Test" VALUES (7, 'Text with a single '' quote');
    خب این هم نتیجه


    Here is the result set.


    1 'Text in single quotes'
    2 'Text in single quotes'
    3 Text with 2 '' single quotes
    4 "Text in double quotes"
    5 "Text in double quotes"
    6 Text with 2 "" double quotes
    7 Text with a single ' quote

    فقط یکی بگه چه جوری میشه با سی شارپ توسط کنترل textbox or richtextbox
    نوشته هایی که دارای کتیشین یا دابل کتیشن هست بشه تو دیتابیس ذخیره کنم لطف کنید کمک کنید
    اگه کنترل ها خصوصیتی دارن که باید تنظیم کرد بگید اگه هم نداره بگید چه جوری کوری بنویسم که این نوشته ها ذخیره بشن

    آخرین ویرایش به وسیله hossein_1200 : شنبه 25 دی 1389 در 19:44 عصر

  9. #9

    نقل قول: خطا در هنگام ذخیره متن خاص در دیتابیس sql توسط richtextbox

    خب روش ذخیره با richtextbox هم فهمیدم
    به خاطر فونتش بود فونت دیفالت مایکروسافت است وقتی اونو به تاهما تغییر دادم تونستم هر متنی ذخیره کنم نکته ش همین بود


    با تشکر از همه دوستان که کمک کردن

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •